VHDL八位数码管频率计课程设计Word文档下载推荐.docx
- 文档编号:21099107
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:10
- 大小:33.36KB
VHDL八位数码管频率计课程设计Word文档下载推荐.docx
《VHDL八位数码管频率计课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VHDL八位数码管频率计课程设计Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
图3仿真波形图
源程序如下:
--分频
libraryieee;
usefdivwangzhengis
port(clk0:
instd_logic;
--输入系统时钟
clk1:
outstd_logic;
--输出1hz时钟信号
clk2:
outstd_logic);
--输出显示扫描时钟信号
endfdivwangzheng;
architectureaoffdivwangzhengis
begin
p1:
process(clk0)
variablecnt:
integerrange0to;
--分频系数为
variableff:
std_logic;
begin
ifclk0'
eventandclk0='
1'
then
ifcnt<
cnt:
=cnt+1;
else
=0;
ff:
=notff;
--反向
endif;
clk1<
=ff;
endprocessp1;
p2:
variablecnn:
integerrange0to999;
--分频系数为499
variabledd:
ifcnn<
999then
cnn:
=cnn+1;
dd:
=notdd;
clk2<
=dd;
endprocessp2;
enda;
--测频控制器
LIBRARYIEEE;
USETESTCTLwanzhengIS
PORT(CLKK:
INSTD_LOGIC;
--1Hz
CNT_EN,RST_CNT,LOAD:
OUTSTD_LOGIC);
ENDTESTCTLwanzheng;
ARCHITECTUREbehavOFTESTCTLwanzhengIS
SIGNALDIV2CLK:
STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IFCLKK'
EVENTANDCLKK='
THENDIV2CLK<
=NOTDIV2CLK;
ENDIF;
ENDPROCESS;
PROCESS(CLKK,DIV2CLK)
IFCLKK='
0'
ANDDiv2CLK='
THENRST_CNT<
='
;
ELSERST_CNT<
LOAD<
=NOTDIV2CLK;
CNT_EN<
=DIV2CLK;
ENDbehav;
(2)十进制计数器的功能模块图及其源程序
图4功能模块图
当使能端为高电平,清零端为低电平时,实现十进制计数功能。
第一个CNT10计数输出CQ=9时,下一秒时钟上升沿到来时,将产生一个CARRY_OUT信号作为下一个CNT10的时钟信号,同时CQ清零,依次递推到8个CNT10。
当清零端为低电平,使能端为低电平时停止计数。
当清零端为高电平时,计数器清零。
图5仿真波形图
USECNT10IS
PORT(CLK:
CLR:
ENA:
CQ:
OUTINTEGERRANGE0TO9;
CARRY_OUT:
ENDCNT10;
ARCHITECTUREbehavOFCNT10IS
SIGNALCQI:
INTEGERRANGE0TO9;
PROCESS(CLR,CLK,ENA)
IF(CLR='
)THEN
CQI<
ELSIF(CLK'
EVENTANDCLK='
)THEN
IF(ENA='
IF(CQI=9)THEN
CQI<
CARRY_OUT<
='
ELSE
=CQI+1;
ENDIF;
ENDPROCESS;
CQ<
=CQI;
(3)32位锁存器的功能模块图及其源程序
图6功能模块图
实现方式:
LOAD信号上升沿到来时将对输入到内部的CNT10计数信号进行锁存。
锁存信号,并将结果输出给SELTIME。
图7仿真波形图
USE
ENTITYREG32BIS
PORT(
LOAD:
DIN:
INSTD_LOGIC_VECTOR(31DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(31DOWNTO0));
ENDENTITYREG32B;
ARCHITECTUREbehavOFREG32BIS
BEGIN
PROCESS(LOAD,DIN)IS
IFLOAD'
EVENTANDLOAD='
THENDOUT<
=DIN;
ENDARCHITECTUREbehav;
(4)数码管扫描的功能模块图及其源程序
图8功能模块图
锁存信号输出DIN[31..0],然后由SELTIME进行扫描输出,当SEL为”000”时选通第一个CNT10,输出到LED7进行译码输出。
依次类推。
图9仿真波形图
USESELTIMEIS
PORT(
CLK:
DIN:
DAOUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDSELTIME;
ARCHITECTUREbehavOFSELTIMEIS
SIGNALSEC:
STD_LOGIC_VECTOR(2DOWNTO0);
PROCESS(CLK)
IF(CLK'
IF(SEC="
111"
SEC<
="
000"
ELSE
=SEC+1;
PROCESS(SEC,DIN(31DOWNTO0))
CASESECIS
WHEN"
=>
DAOUT<
=DIN(3DOWNTO0);
001"
=DIN(7DOWNTO4);
010"
=DIN(11DOWNTO8);
011"
=DIN(15DOWNTO12);
100"
=DIN(19DOWNTO16);
101"
=DIN(23DOWNTO20);
110"
=DIN(27DOWNTO24);
=DIN(31DOWNTO28);
WHENOTHERS=>
NULL;
ENDCASE;
SEL<
=SEC;
(5)七段数码管译码显示的功能模块图及其源程序
图10功能模块图
将实验结果使用数码管直观的显示出来。
图11仿真波形图
USELED7IS
PORT(DIN:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDLED7;
ARCHITECTUREbehavOFLED7IS
--SIGNALLED7:
STD_LOGIC_VECTOR(6DOWNTO0);
PROCESS(DIN)
CASEDINIS
0000"
DOUT<
0111111"
0001"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
0101"
1101101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1001"
1101111"
1010"
1110111"
1011"
1111100"
1100"
0111001"
1101"
1011110"
1110"
1111001"
1111"
1110001"
(6)3-8译码器的功能模块图及其源程序
图12功能模块图
利用3-8译码器将数码管的位选信号选通。
图13仿真波形图
USELS138IS
PORT(Q:
INSTD_LOGIC_VECTOR(2DOWNTO0);
D:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
dp:
OUTSTD_LOGIC);
ENDLS138;
ARCHITECTUREbehavOFLS138IS
WITHQSELECT
D<
"
WHEN"
01111111"
wHEN"
WHENOTHERS;
WITHQSELECT
dp<
'
6、顶层模块图
图14总体设计顶层模块图
其中8个十进制计数器模块JSQ的底层模块图如图15所示:
图15计数器模块原理图
本次课程设计的时钟信号由试验箱上面的5MHz的晶振提供,经过系统时钟和控制模块后分别产生和10kHz的脉冲信号的脉冲信号十进制计数器的使能信号,使计数器统计出待测信号在1s脉宽之间的脉冲数目。
再由计数模块将测得的信号传送给数码管显示部分,通过译码模块产生可以在数码管上显示的BCD码。
而1kHz是作为数码管动态扫描的频率,由于人的视觉暂留现象,频率较高时,数码管看起来就是连续发光。
本设计中使个位显示为数码管的小数点后面一位,由此实现了频率分辨率为1Hz的频率计设计。
结论
EDA技术是电子设计的发展趋势,利用EDA工具可以代替设计者完成电子系统设计中的大部分工作。
EDA工具从数字系统设计的单一领域,发展到今天,应用范围己涉及模拟、微波等多个领域,可以实现各个领域电子系统设计的测试、设计仿真和布局布线等,这些都是我在这次课设中深刻体会到的。
经过这次课程设计,让我真正认识了EDA这门学科,了解到这种方式下的设计方案,硬件电路简洁,集成度高,体现了当今社会所需的先进技术,日后必定在有着广阔的发展空间。
通过这次对EDA课程设计的进一步操作,能更好的在QuartusII上进行VHDL程序的编译及各个模块的仿真,虽然在实际操作过程中由于粗心造成了程序的缺失和错误,但都在老师和同学的帮助下一一解决了。
很好地巩固了我们学过的专业知识,使我对数字系统结构也有了更进一步的了解和认识,同时对数据库软件EDA技术、VHDL等系列知识都有了一定的了解。
使用EDA技术开发页面的能力也有了很大提高,也使我们把理论与实践从真正意义上相结合了起来;
考验了我们借助互联网络搜集、查阅相关文献资料,和组织材料的综合能力。
在这次课程设计中,虽然应用的都是在书本上学过的知识,但是只有应用到实际中才算真正的学懂了这些知识。
本次数字频率计的涉及到了VHDL语言、QuartusII软件,EDA技术等。
涉及了微机原理和EDA所学的大部分内容。
通过这次课程设计实践巩固了学过的知识并能够较好的利用。
课程设计实践不单是将所学的知识应用于实际,在设计的过程中,只拥有理论知识是不够的。
逻辑思维、电路设计的步骤和方法、考虑问题的思路和角度等也是很重要,需要我们着重注意锻炼的能力。
在这次设计中还发现理论与实际常常常存在很大差距,为了使电路正常工作,必须灵活运用原理找出解决方法。
在课题设计中,通过使用QuartusII这个完全集成化、易学易用的可编程逻辑设计环境,利用VHDL语言设计完成八位十进制数字频率计,能够较好的测定所给频率,并且具有自动清零和自动测试的功能,基本符合此次课程设计给出的要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 八位 数码管 频率计 课程设计