资源描述:
《计数显示电路设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计数显示电路设计课程:VHDL数字系统设计与测试老师:学号:姓名:计数显示电路设计一设计要求设计输出为3位BCD码的计数显示电路。由三个模块构成:十进制计数器(BCD_CNT)、分时总线切换电路(SCAN)和七段显示译码器电路(DEC_LED)。BCD码计数电路从0计到9然后返回到0从新计数。3位BCD码计数器可以实现从0到999的十进制计数。要将计数过程用七段显示LED数码管显示出来,这里采用动态分时总线切换电路对数码管进行扫描,对数码管依次分时选中进行输出计数的个、十、百位的数据。框图如图1:图1二设计原理图2是源程序的RTL级电
2、路图(RTLViewer)。整个设计分十进制计数器模块(BCD_CNT)、分时总线切换电路模块(SCAN)和七段显示译码器电路模块(DEC_LED)构成。总的输入为十进制计数器时钟clk,异步复位清零信号reset,分时总线切换电路时钟CL。在reset信号为0期间,在每个clk的上升沿计数器将加1。在每个cl的上升沿将会改变对三个数码管的扫描选通。总的输出为数码管选通信号sel(三位),输出到七段数码管的数据信号ledout(七位)。图2为了检验系统的正确与否,这里还添加了四个输出:十进制计数器输出c1(四位)、c2(四位)、c3(
3、四位),分时总线切换电路一个输出q(四位),它是对计数器输出c1、c2、c3进行分时输出。分时选通个、十、百位的数码管并将相应要显示的数据输出到七段显示译码器电路(DEC_LED),由此实现数码管的动态扫描显示。三VHDL实现(1)顶层模块:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitytopis--定义了一个顶层的模块topport(clk,reset:instd_logi
4、c;CL:instd_logic;c1,c2,c3:outstd_logic_vector(3downto0);ledout:outstd_logic_vector(6downto0);q:outstd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0));endtop;architecturecontentoftopissignalc1_1,c2_1,c3_1:std_logic_vector(3downto0);signalq_1:std_logic_vector(3d
5、ownto0);--因为c1,c2,c3,q是中间信号量,也是输出,故引入c1_1,c2_1,c3_1q_1作为中间变量componentBCD_CNTis--定义元件BCD_CNTport(clk,reset:instd_logic;c1,c2,c3:outstd_logic_vector(3downto0));endcomponent;componentSCANis--定义元件SCANport(c1,c2,c3:instd_logic_vector(3downto0);CL:instd_logic;q:outstd_logic_v
6、ector(3downto0);sel:outstd_logic_vector(2downto0));endcomponent;componentDEC_LEDis--定义元件DEC_LEDport(q:instd_logic_vector(3downto0);ledout:outstd_logic_vector(6downto0));endcomponent;beginu1:BCD_CNTportmap(clk,reset,c1_1,c2_1,c3_1);--调用元件实例BCD_CNTu2:SCANportmap(c1_1,c2_1
7、,c3_1,CL,q_1,sel);--调用元件实例SCANu3:DEC_LEDportmap(q_1,ledout);--调用元件实例DEC_LEDc1<=c1_1;--中间变量值赋给输出c2<=c2_1;c3<=c3_1;q<=q_1;endcontent;(2)十进制计数器电路(BCD_CNT)模块:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityBCD_CNTispor
8、t(clk,reset:instd_logic;c1,c2,c3:outstd_logic_vector(3downto0));endBCD_CNT;architecturecntofBCD_CNTissignalcn1