




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE报告创建时间:数字逻辑实验报告四年级、专业、班级12级计科一班姓名20124927胡波实验题目数字频率计的设计实验时间2014/6/12实验地点DS1410实验成绩实验性质√验证性□设计性□综合性教师评价:□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;其他:评价教师签名:一、实验目的(1)了解数字电路设计的基本特点(2)了解数字频率计电路的基本原理(3)基本掌握Quartus软件的使用(设计输入、仿真、实现)(4)基本掌握HDL的使用二、实验项目内容(1)设计出符合设计要求的解决方案(2)设计出单元电路(3)在实验板实现数字频率计(5)观察实验结果三、实验过程设计流程使用软件进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图2.1所示:设计要求设计要求设计输入编译处理验证器件编程器件测试系统产品设计修改图2.1设计流程图根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3.1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。时基产生与测频时序控制电路时基产生与测频时序控制电路待测信号脉冲计数电路锁存与显示电路ENCLRLOCKq[0:15]z1[0:6]z2[0:6]z3[0:6]z4[0:6]待测信号F_IN标准时钟CLK图3.1数字频率计的组成框图(1)时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CLR和锁存信号LOCK。(2)待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。(3)锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并驱动数码管。采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。各功能模块采用VHDL语言来描述。四、实验结果及分析结果测试在成功下载并运行后,评估该设计系统的实际测量效果,作对比试验,选用频率可调的函数发生器生成测试信号。测得结果如下:序号输入(Hz)输出(Hz)1112101031001004100010005536536附VHDL源代码顶层电路的VHDL源程序顶层文件pinlvji:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYPINLVJIISPORT(F_IN,CLK:INSTD_LOGIC;ENT,LOCKT,CLRT:BUFFERSTD_LOGIC;Z1,Z2,Z3,Z4:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDPINLVJI;ARCHITECTUREARTOFPINLVJIISSIGNALENS,LOCKS,CLRS:STD_LOGIC;SIGNALQAS,QBS,QCS,QDS:STD_LOGIC_VECTOR(3DOWNTO0);COMPONENTcontroler--元件CTRL引用说明语句PORT(CLK:INSTD_LOGIC;EN,LOCK,CLR:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTCOUNT--元件COUNT引用说明语句PORT(CLK,EN,CLR:INSTD_LOGIC;QA,QB,QC,QD:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;COMPONENTLOCK--元件LOCK引用说明语句PORT(LOCK:INSTD_LOGIC;QA,QB,QC,QD:INSTD_LOGIC_VECTOR(3DOWNTO0);DA,DB,DC,DD:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;BEGINENT<=ENS;LOCKT<=LOCKS;CLRT<=CLRS;U1:controlerPORTMAP(CLK,ENS,LOCKS,CLRS);--元件引用例示U2:COUNTPORTMAP(F_IN,ENS,CLRS,QAS,QBS,QCS,QDS);--元件引用例示U3:LOCKPORTMAP(LOCKS,QAS,QBS,QCS,QDS,Z1,Z2,Z3,Z4);--元件引用例示ENDART;锁存与译码显示控制模块的VHDL源程序Lock文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLOCKISPORT(LOCK:INSTD_LOGIC;QA,QB,QC,QD:INSTD_LOGIC_VECTOR(3DOWNTO0);DA,DB,DC,DD:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--频率计数输出END;ARCHITECTUREARTOFLOCKISSIGNALQAL,QBL,QCL,QDL:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(LOCK)BEGINIF(LOCK'EVENTANDLOCK='1')THEN--检测时钟上升沿QAL<=QA;QBL<=QB;QCL<=QC;QDL<=QD;ENDIF;ENDPROCESS;DA<=QAL;DB<=QBL;DC<=QCL;DD<=QDL;ENDART;待测信号脉冲计数器的VHDL源程序Count文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTISPORT(CLK:INSTD_LOGIC;--待测时钟信号EN:INSTD_LOGIC;--计数选通控制信号CLR:INSTD_LOGIC;--计数器清零信号QA,QB,QC,QD:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));--结果输出信号END;ARCHITECTUREARTOFCOUNTISCOMPONENTCB10--元件CB10引用说明语句PORT(CLK,EN,CLR:INSTD_LOGIC;COUNT10:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));--计数输出信号ENDCOMPONENT;SIGNALCLK2:STD_LOGIC;SIGNALCLK3:STD_LOGIC;SIGNALCLK4:STD_LOGIC;BEGINCLK2<=NOTQA(3);CLK3<=NOTQB(3);CLK4<=NOTQC(3);U1:CB10PORTMAP(CLK,EN,CLR,QA);--元件引用例示U2:CB10PORTMAP(CLK2,EN,CLR,QB);--元件引用例示U3:CB10PORTMAP(CLK3,EN,CLR,QC);--元件引用例示U4:CB10PORTMAP(CLK4,EN,CLR,QD);--元件引用例示ENDART;十进制加法计数器的VHDL源程序Cd10文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCB10ISPORT(CLK,EN,CLR:INSTD_LOGIC;COUNT10:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));--计数输信号ENDCB10;ARCHITECTUREARTOFCB10IS--结构体BEGINPROCESS(CLK,CLR,EN)BEGINIFCLR='1'THENCOUNT10<="0000";--计数器清零ELSIFRISING_EDGE(CLK)THEN--检测时钟上升沿IF(EN='1')THEN--检测是否允许计数IFCOUNT10="1001"THENCOUNT10<="0000";--计数值满9清零ELSECOUNT10<=COUNT10+'1';--允许计数ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDART;译码显示电路的VHDL源程序Bcd7文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYBCD7ISPORT(BCD:INSTD_LOGIC_VECTOR(3DOWNTO0);--BCD输入信号LED:OUTSTD_LOGIC_VECTOR(6DOWNTO0));--七段译码输出信号END;ARCHITECTUREARTOFBCD7ISBEGINLED<="0111111"WHENBCD="0000"ELSE--对照七段字形显示译码器真值表"0000110"WHENBCD="0001"ELSE"1011011"WHENBCD="0010"ELSE"1001111"WHENBCD="0011"ELSE"1100110"WHENBCD="0100"ELSE"1101101"WHENBCD="0101"ELSE"1111101"WHENBCD="0110"ELSE"0000111"WHENBCD="0111"ELSE"1111111"WHENBCD="1000"ELSE"1101111"WHENBCD="1001"ELSE"0000000";ENDART;时基产生与测频时序控制电路模块的VHDL源程序Controler文件:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycontrolerisport(CLK:instd_logic;EN:outstd_logic;CLR:outstd_logic;LOCK:outstd_logic);endcontroler;architectureBehavioralofcontrolerissignalQ:std_logic_vector(3downto0);beginprocess(CLK) begin ifCLK'eventandCLK='1'then ifQ=x"1111"then Q<=(others=>'0'); else Q<=Q+1;endif;endif;endprocess;process(Q)begin caseQis when"0000"=>CLR<='0';EN<='0';LOCK<='0'; when"0001"=>CLR<='1';EN<='0';LOCK<='0'; when"0010"=>CLR<='0';EN<='0';LOCK<='0'; when"0011"=>CLR<='0';EN<='1';LOCK<='0'; when"0100"=>CLR<='0';EN<='1';LOCK<='0'; when"0101"=>CLR<='0';EN<='1';LOCK<='0'; when"0110"=>CLR<='0';EN<='1';LOCK<='0'; when"0111"=>CLR<='0';EN<='1';LOCK<='0'; when"1000"=>CLR<='0';EN<='1';LOCK<='0'; when"1001"=>CLR<='0';EN<='1';LOCK<='0'; when"1010"=>CLR<='0';EN<='1';LOCK<='0'; when"1011"=>CLR<='0';EN<='1';LOCK<='0'; when"1100"=>CLR<='0';EN<='1';LOCK<='0'; when"1101"=>CLR<='0';EN<='0';LOCK<='0'; when"1110"=>CLR<='0';EN<='0';LOCK<='1'; when"1111"=>CLR<='0';EN<='0';LOCK<='0'; whenothers=>CLR<='0';EN<='0';LOCK<='0'; endcase; endprocess;endBehavioral;部分程序仿真:待测信号脉冲计数器的仿真十进制加法计数器的仿真感想:本设计利用测频法的原理和VHDL语言,采用自顶向下的设计方法,实现了1Hz~10kHz测量范围的四位十进制的数字频率计,并在软件帮助下对设计项目进行的了编译和时序仿真。实验结果表明,该系统能够满足本次设计的要求,并且具有测量误差小,可靠性高的优点。课程设计结束了,这次设计历时近一个星期,通过这一个星期的学习,发现了自己的很多不足,发现了很多知识上的漏洞。同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次课程设计让我学到了很多,不仅是巩固了先前学的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。还有一点是我们做任何事情都无法缺少的,那就是细心认真。此次设计我就深深地体会到了,由于编程的时候没有做到足够的细心,导致一串代码弄混了。但是密密麻麻的英文字母混在一起,我始终没有发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动合同违约责任及典型案例分析
- 家庭用工合同模板参考范本
- 篇二:购房合同范本规范
- 室内防水改造合同范本
- 定制旅行服务协议合同
- 房地产开发施工合同样本
- 金融市场中银行承兑质押合同的法律效力
- 兼职市场拓展合同样本
- 发射设备在极端环境下的稳定性检测考核试卷
- 塑胶跑道材料的生产工艺与质量控制考核试卷
- 新教科版小学1-6年级科学需做实验目录
- GB/T 30795-2014食品用洗涤剂试验方法甲醇的测定
- GB/T 1345-2005水泥细度检验方法筛析法
- 技术-tpu挤出加工注意事项
- 包扎(三角巾)课件
- 外科学第八版手外伤以及断指再植
- 高校助学贷款结清凭证
- 产业园规划建筑设计说明
- 内蒙体育职院《体育传播学》教案第1章 传播与传播学
- 玛莎拉蒂路演执行手册升级版
- 《建筑工程资料管理规程》DB34T918-2019
评论
0/150
提交评论