欢迎来到天天文库
浏览记录
ID:51802278
大小:439.00 KB
页数:12页
时间:2020-03-15
《计数显示电路设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程名称:VHDL数字系统设计与测试题目计数显示电路学院电子工程学院学号1202121273姓名马泽伟一.设计功能和要求要求:设计一个输出为3位BCD码的计数显示电路。该计数显示电路由三个模块构成:1、十进制计数器(BCD_CNT)2、七段显示译码器电路(DEC_LED)3、分时总线切换电路(SCAN)。该电路功能为通过对外部一信号脉冲进行计数,并以十进制进行计数,计到百位。同时利用数码管动态扫描原理进行三位数码管进行显示出来。二.设计思路整个设计分十进制计数器模块(BCD_CNT)、分时总线切换电路模块(SCAN)和七段显示译码器电路模块(DEC_LED)构成。总的
2、输入为十进制计数器时钟clk_1k,异步复位清零信号rst_n,分时总线切换电路时钟clk_1m。在rst信号为0期间,在每个clk的上升沿计数器将加1。在每个clk_1k的上升沿将会改变对三个数码管的扫描选通。总的输出为数码管选通信号sel(三位),输出到七段数码管的数据信号led(七位)。电路原理图如下:根据设计思路,设计详细的电路原理图如下:利用quartusⅡ进行综合生成RTL电路如下图:顶层模块逻辑结构图如下:顶层模块主要将十进制计数器、分时总线切换和七段显示译码模块进行连接搭建。其中从十进制模块中输出的data1[3:0]、data2[3:0]、data3
3、[3:0]分别为个、十、百位的BCD码。分时总线切换的输出data[3:0]为其中要显示的一个BCD码和位选信号一一对应。1.十进制计数模块十进制模块输入输出IO口有计数时钟输入sysclk、系统复位端rst_b、BCD输出端data和进位端co。当计数时钟端来一脉冲时,data将会计数,当来10个脉冲时,data端将会清零,并且产生一个进位脉冲信号。如此将三个十进制模块通过进位端co进行级联,则可成为百位BCD计数器。2.分时总线切换这个模块时本设计的重点和难点,分时总线切换经过系统时钟进行分频得到扫描时钟,每当扫描时钟上升沿时,进行切换,使得当data_sel[2
4、:0]=”011”,data[3:0]=data1[3:0],依次类推。3.七段显示译码将data[3:0]的BCD码译码成为数码管显示码,采用共阴极.四:源代码设计1.顶层模块代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdeclariationENTITYdisplayISPORT(Globalsysteminputsysclk:inSTD_LOGIC;rst_b:inSTD_LOGIC;tim_clk:inSTD_LOGIC;Outputportsdat
5、a_sel:outSTD_LOGIC_VECTOR(2DOWNTO0);data_out:outSTD_LOGIC_VECTOR(6DOWNTO0));ENDENTITY;ArchitecturedeclaritionARCHITECTUREcodeofdisplayisSignaldeclarationSIGNALdata1,data2,data3:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALtemp:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALco1,co2:STD_LOGIC;COMPONENTBCD_CNTCOMPO
6、NENTBCD_CNTPORT(Sysclk:INSTD_LOGIC;rst_b:INSTD_LOGIC;dataout:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTDEC_LEDCOMPONENTDEC_LEDPORT(data_in:INSTD_LOGIC_VECTOR(3DOWNTO0);data_out:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDCOMPONENT;COMPONENTSCANCOMPONENTSCANPORT(sysclk:I
7、NSTD_LOGIC;rst_b:INSTD_LOGIC;data1:INSTD_LOGIC_VECTOR(3DOWNTO0);data2:INSTD_LOGIC_VECTOR(3DOWNTO0);data3:INSTD_LOGIC_VECTOR(3DOWNTO0);data_out:OUTSTD_LOGIC_VECTOR(3DOWNTO0);data_sel:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDCOMPONENT;BEGINU1:BCD_CNTPORTMAP(sysclk=>tim_clk,rst_b=>rst_b,
此文档下载收益归作者所有