2023年EDA综合性实验报告8位16进制频率计设计

上传人:豆*** 文档编号:166368636 上传时间:2022-10-31 格式:DOC 页数:17 大小:243KB
返回 下载 相关 举报
2023年EDA综合性实验报告8位16进制频率计设计_第1页
第1页 / 共17页
2023年EDA综合性实验报告8位16进制频率计设计_第2页
第2页 / 共17页
2023年EDA综合性实验报告8位16进制频率计设计_第3页
第3页 / 共17页
点击查看更多>>
资源描述
综合性实验报告姓 名: 学 号 班 级: 实验项目名称: 8位16进制频率计设计 实验项目性质: 验证性和设计性实验 实验所属课程: EDA数字设计基础 实验室(中心): 现代电子实验中心 指 导 教 师 : 实验完毕时间: 2023 年 6 月 20 日教师评阅意见: 署名: 年 月 日实验成绩:一、课题任务与规定 1、用EDA技术设计并实现8位十六进制频率计,及设计一个基于VHDL的八位十六进制频率计,学习较复杂的数字系统设计方法。书面报告涉及工作原理,工作模块图,仿真波形图和问题分析。 2、分别仿真测试模块1,、2和3,在结合模块4完毕频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。3、将频率计改为8位10进制频率计,注意此设计电路的计数器必须是8个4位的10进制计数器。此外注旨在测频速度上给予优化。二、设计系统的概述 原理:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期做好准备。测频控制信号可以由一个独立的发生器来产生。在一个标准信号的周期中计数出待测信号的周期,从而得出待测信号的周期,进而得到待测信号的频率。通过待测信号与标准信号比较,而输出的8位16进制数或8位10进制数就是待测信号的频率值。 (1)FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能进行同步控制。 (2)当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,一方面需要一个锁存信号LOAD的上跳沿将计数器在前一秒钟的计数值锁存进各锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。设立锁存器的好处是数据显示稳定,不会由于周期性的清零信号而不断闪烁。 (3)锁存信号后,必须有清零信号RST_CNT对计数器进行清零,为下一秒的计数操作作准备。(4)、8位16进制频率计由一个测频控制电路、一个32位锁存器和一个32位计数器组成。(5)、8位10进制频率计由一个测频控制电路、一个32位锁存器和8个4位计数器组成。三、单元电路的设计与分析:单元电路的设计:1、 测频控制电路LIBRARY IEEE; -测频控制电路USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL IS PORT (CLKK : IN STD_LOGIC; - 1Hz CNT_EN : OUT STD_LOGIC; - 计数器时钟使能 RST_CNT : OUT STD_LOGIC; - 计数器清零 Load : OUT STD_LOGIC ); - 输出锁存信号 END FTCTRL;ARCHITECTURE behav OF FTCTRL IS SIGNAL Div2CLK : STD_LOGIC;BEGIN PROCESS( CLKK ) BEGIN IF CLKKEVENT AND CLKK = 1 THEN - 1Hz时钟2分频 Div2CLK = NOT Div2CLK; END IF; END PROCESS; PROCESS (CLKK, Div2CLK) BEGIN IF CLKK=0 AND Div2CLK=0 THEN RST_CNT=1;- 产生计数器清零信号 ELSE RST_CNT = 0; END IF; END PROCESS; Load = NOT Div2CLK; CNT_EN = Div2CLK;END behav;2、32位锁存器REG32BLIBRARY IEEE; -32位锁存器USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT ( LK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END REG32B;ARCHITECTURE behav OF REG32B ISBEGIN PROCESS(LK, DIN) BEGIN IF LKEVENT AND LK = 1 THEN DOUT = DIN; END IF; END PROCESS;END behav; 3、32位计数器COUNTER32BLIBRARY IEEE; -32位计数器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER32B IS PORT (FIN : IN STD_LOGIC; - 时钟信号 CLR : IN STD_LOGIC; - 清零信号 ENABL : IN STD_LOGIC; - 计数使能信号 DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); - 计数结果 END COUNTER32B;ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI : STD_LOGIC_VECTOR(31 DOWNTO 0);BEGIN PROCESS(FIN, CLR, ENABL) BEGIN IF CLR = 1 THEN CQI 0); - 清零 ELSIF FINEVENT AND FIN = 1 THEN IF ENABL = 1 THEN CQI = CQI + 1; END IF; END IF; END PROCESS; DOUT CLK1HZ,CNT_EN=TSTEN1,RST_CNT =CLR_CNT1,Load =Load1); U2 : REG32B PORT MAP( LK = Load1, DIN=DTO1, DOUT = DOUT); U3 : COUNTER32B PORT MAP( FIN = FSIN, CLR = CLR_CNT1, ENABL = TSTEN1, DOUT=DTO1 );END struc;5、4位10进制计数器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT (CLK : IN STD_LOGIC; CLR : IN STD_LOGIC; ENA : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT : OUT STD_LOGIC ); END CNT10;ARCHITECTURE behav OF CNT10 IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK, CLR, ENA) BEGIN IF CLR = 1 THEN CQI = 0000; - ELSIF CLKEVENT AND CLK = 1 THEN IF ENA = 1 THEN IF CQI 1001 THEN CQI = CQI + 1; ELSE CQI = 0000; END IF; END IF; END IF; END PROCESS; PROCESS(CQI) BEGIN IF CQI = 1001 THEN CARRY_OUT = 1; ELSE CARRY_OUT = 0; END IF; END PROCESS; CQ clk1hz,cnt_en=tsten1,rst_cnt =clr_cnt1,load =load1);u2:reg32b port map(lk =load1,din=dto1,dout=dout);u3:CNT10 port map(fsin,clr_cnt1,tsten1,dto1(3 downto 0),carry_out1(1);u4:CNT10 port map(carry_out1(1),clr_cnt1,tsten1,dto1(7 downto 4),carry_out1(2);u5:CNT10 port map(carry_out1(2),clr_cnt1,tsten1,dto1(11 downto 8),carry_out1(3);u6:CNT10 port map(carry_out1(3),clr_cnt1,tsten1,dto1(15 downto 12),carry_out1(4);u7:CNT10 port map(carry_out1(4),clr_cnt1,tsten1,dto1(19 downto 16),carry_out1(5);u8:CNT10 port map(carry_out1(5),clr_cnt1,tsten1,dto1(23 downto 20),carry_out1(6);u9:CNT10 port map(carry_out1(6),clr_cnt1,tsten1,dto1(27 downto 24),carry_out1(7);u10:CNT10 port map(carry_out1(7),clr_cnt1,tsten1,dto1(31 downto 28);end struc;分析: 实验中,将频率计改为8位10进制频率计时,注意此设计电路的计数器必须是8个位的10进制计数器,而不是一个。此外注旨在测评速度上给予优化。引入的8个4位10进制计数器,分别于32位锁存器的32个输入端相连接,来形成8位10进制频率计。四、 电路的仿真、结果及分析:电路的仿真 :1、 测频控制电路 图1 测频控制电路波形仿真图2测频控制电路模块图(实验书中的图)2、32位锁存图3 32位锁存器波形仿真图4 32位锁存器模块图(同上)3、32位计数器图5 32位计数器波形仿真图6 32位计数器模块图(同上)4、8位16进制的频率计顶层文献 图7 总电路波形仿真图8 总电路图(同上)实验结果及分析: 测频控制信号clk可以由一个外部的脉冲信号发生器输入1Hz的标准信号来产生。8个数码管以16进制形式显示测频输出;待测频率输入Fin由外电路输入。测频控制信号发生器FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,一方面需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进锁存器REG32B中,并由外部的16进制7段译码器译出,显示计数值。设立锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。电路的仿真 :5、4位10进制计数器6、8位10进制频率计的顶层文献实验结果及分析: 在这个实验中,输入信号clk1hz为10Hz,而待测信号fsin为50Hz,所以输出dout为5。证明待测信号fsin频率是输入信号clk1hz频率的5倍,所以,实验结果满足实验规定。五、 硬件调试及结果:1、 测频控制电路 关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。控制时钟信号clk取为1Hz,2分频后即可查声一个脉宽为1秒的时钟test-en,一此作为计数闸门信号。当test-en为高电平时,允许计数;当test-en由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次test-en上升沿到哦来之前产生零信号clear,将计数器清零,为下次计数作准备。2、32位锁存器 当test-en下降沿到来时,将计数器的计数值锁存,这样可由外部的七段译码器 译码并在数码管显示。设立锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存器的位数应跟计数器完全同样。3、 计数器 计数器以待测信号作为时钟,清零信号clear到来时,异步清零;test-en为高电平时开始计数。计数是以十进制数显示,本文设计了一个简朴的10kHz以内信号的频率机计,假如需要测试较高的频率信号,则将dout的输出位数增长,当然锁存器的位数也要增长 。4、8位16进制频率计 输入端1Hz测频控制信号clk1hz由clock2输入(用跳线选1Hz),待测频率输入fin由clock0输入,频率选择为256Hz。输出端dout与8个8段显示管相连,且8个数码管以16进制形式显示测频输出。结果: 在一段时间8个显示管为00000000后,第一位开始计数,当到达15后,进入第二位,最后停在00000100,及10进制的256。5、8位10进制频率计输入端1Hz测频控制信号clk1hz由clock2输入(用跳线选1Hz),待测频率输入fin由clock0输入,频率选择为256Hz。输出端dout与8个8段显示管相连,且8个数码管以16进制形式显示测频输出。结果: 在一段时间8个显示管为00000000后,第一位开始计数,当到达9后,进入第二位,最后停在00000256。六、 设计体会本次实验是设计一个8位十六进制频率计,设计重要用到了多种芯片,程序也比较长、比较麻烦,同时也碰到了不少困难,特别是关于校时模块的设计实现。这是本学期这门课程的最后一个实验,也是最后一个综合性实验,是对这门课程的一个全面总结和检测。 通过本次实验,我更加系统和全面的了解了模块化的设计流程,特别是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了32位锁存器的使用和中断解决器程序的编程方法。实验中,让我对源程序有了更好的认知与分析,并且对VHDL语言又增长了纯熟运用限度。在VHDL语音程序中,运用了元件实体声明、信号量的声明、进程的运用、循环语句的多种用法和元件例化语句等,不仅检查了我们对实验软件工具Quartus的熟悉与掌握应用,并且考验我们能否纯熟的对程序进行编写,对输入波形的编译,对程序的仿真。 转眼间,一个学期过去了,随着着这次实验的结束,我们也完毕了这门课程的初步学习。通过这么久的课本和实验学习,使得我开拓了思绪,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,使我获益匪浅! 我始终相信:只要努力过了、终究会有所收获!同时,也让自己无愧于心。七、参考文献巴里.威尔金森 编著, 数字设计基础(双语教学版)潘松 编著,EDA技术实用教程 科学出版设徐雯娟 编著 基于VHDL语音的数字电路设计实验指导高振斌等 编著 EDA实用技术及应用
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!