ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:79.03KB ,
资源ID:4495211      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4495211.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验六数字频率计的设计文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验六数字频率计的设计文档格式.docx

1、在设计频率计的时候,八个七段码管最多可以显示 99,999,999Hz,因此在设计时候用八个 4位二进制码(BCD 码)来表示,另外还必须有同样的八个 4位二进制码来对输入的频率进行计数,在闸门下降沿的时候,将后者的值锁存到寄存器中。其信号的时序关系如下图 17-2 所示:图 17-3 控制信号时序关系三、实验内容本实验要完成的任务就是设计一个频率计,系统时钟选择核心板上的 50M的时钟,闸门时间为 1s(通过对系统时钟进行分频得到),在闸门为高电平期间,对输入的频率进行计数,当闸门变低的时候,记录当前的频率值,并将频率计数器清零,频率的显示每过 2秒刷新一次。外部CLR清零信号可以使当前寄存

2、值清零。其实现框图如下图17-3 所示:在本实验中,用到的模块有数字信号源模块、按钮开关模块、50M 系统时钟源模块、数码管显示模块等。其中数码管、数字信号源、按钮开关与 FPGA 的连接电路和管脚连接这里不在赘述。50M 系统时钟源的模块位于 EP2C35 核心板的中上方通过一个贴片的 50M 有源晶体来产生 50MHZ的时钟信号,其与 FPGA 的管脚连接如表 17-1 所示。表 17-1 50M 系统时钟与 FPGA 的管脚连接表信号名称对应 FPGA 管脚名说明系统时钟源A13(GCLK9)50MHZ 系统时钟四、实验步骤1、打开 QUARTUSII 软件,新建一个工程。2、建完工程之

3、后,再新建一个 VHDL File,打开 VHDL 编辑器对话框。3、按照实验原理和自己的想法,在 VHDL编辑窗口编写 VHDL程序,本实验共分为5个模块,每一个模块源程序完成一定的功能。其具体的功能如下表 17-2:表 17-2 示例程序功能表文件名称完成功能P1产生 1HZ 的闸门信号和 1KHZ 的显示扫描信号P2在时钟的作用下生成测频的控制信号P3十进制计数器,用32位来显示8个4位BCD数P432 位的锁存器,在锁存控制信号的作用下,将计数的值锁存P5显示译码,将锁存的数据显示出来实验程序如下所示: - - Title:源程序p1 - Author:参考自网上 - Data: 20

4、12-12-8 - LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY p1 IS PORT ( clk50m : IN STD_LOGIC; -50M系统时钟输入 clk1kHZ : OUT STD_LOGIC; -1KHZ显示扫描时钟输出 clk1HZ : OUT STD_LOGIC);-1HZ闸门信号产生 END p1;ARCHITECTURE behave OF p1 IS BEGIN PROCESS(clk50m) -产生显示扫描时钟1KHZ variable cnttemp

5、: INTEGER RANGE 0 TO 99999; IF clk50m=1 AND clk50mevent THEN IF cnttemp=99999 THEN cnttemp:=0; ELSE IF cnttemp50000 THEN clk1khz=; ELSE clk1khz0 END IF; cnttemp:=cnttemp+1;END PROCESS; variable cnt : INTEGER RANGE 0 TO 49999999; IF cnt=49999999 THEN cnt: IF cnt25000000 THEN clk1hz ELSE clk1hz cnt:=c

6、nt+1;END behave; -p2源程序 - LIBRARY IEEE; ENTITY p2 IS PORT ( CLK1hz: -1 Hz测频控制时钟 EN: -计数器时钟使能 CLR1: -计数器清零 LOAD: -输出锁存信号END p2;ARCHITECTURE behave OF p2 IS SIGNAL DIV2CLK :STD_LOGIC;SIGNAL CLR :BEGIN PROCESS ( CLK1hz ) IS BEGIN IF CLK1hzEVENT AND CLK1hz= -1 HZ时钟二分频 THEN DIV2CLK=NOT DIV2CLK; END IF ;

7、END PROCESS; PROCESS ( CLK1hz,DIV2CLK ) BEGIN IF CLK1hz= AND DIV2CLK = THEN -产生计数器清零信号 CLR= ELSE CLR ; LOAD=not div2clk; EN=DIV2CLK;CLR1);elsIF(CLKEVENT AND CLK=)THEN - 实现32位十进制BCD计数 IF(EN=)THEN IF(DIN1(3 DOWNTO 0)=1001 DIN1(3 DOWNTO 0):=0000 IF(DIN1(7 DOWNTO 4)= DIN1(7 DOWNTO 4): IF(DIN1(11 DOWNTO

8、8)= DIN1(11 DOWNTO 8): IF(DIN1(15 DOWNTO 12)= DIN1(15 DOWNTO 12): IF(DIN1(19 DOWNTO 16)= DIN1(19 DOWNTO 16): IF(DIN1(23 DOWNTO 20)= DIN1(23 DOWNTO 20): IF(DIN1(27 DOWNTO 24)= DIN1(27 DOWNTO 24): DIN1(31 DOWNTO 28):=DIN1(31 DOWNTO 28) + 1; ELSIF(DIN1(31 DOWNTO 24)=10011001 DIN1(31 DOWNTO 24): ELSE=DI

9、N1(27 DOWNTO 24)+1;=DIN1(23 DOWNTO 20)+1;=DIN1(19 DOWNTO 16)+1;=DIN1(15 DOWNTO 12)+1;=DIN1(11 DOWNTO 8)+1;=DIN1(7 DOWNTO 4)+1;=DIN1(3 DOWNTO 0)+1;END IF;DIN=DIN1; - 将中间变量值赋给输出结果变量DINEND BEHAVE;-P4 -ENTITY p4 IS CLR: - 外部清零信号 DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); -输入32位十进制BCD数 - 输出锁存信号 DOUT: OUT STD

10、_LOGIC_VECTOR(31 DOWNTO 0); - 输出32位十进制BCD结果END ENTITY p4;ARCHITECTURE behave OF P4 IS PROCESS ( LOAD, DIN ) IS IF LOAD EVENT AND LOAD= THEN DOUT=DIN; IF(CLR=)THEN DOUT-P5 -ENTITY P5 ISPORT(CLK1KHZ: - 输入1KHZ扫描频率IN STD_LOGIC_VECTOR(31 DOWNTO 0); - 输入待显示32位十进制BCD数 LOUT7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)

11、; - 七段显示译码管 SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) - 数码管选通信号END P5;ARCHITECTURE BEHAVE OF P5 ISSIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL LOUT4:STD_LOGIC_VECTOR(3 DOWNTO 0);PROCESS (CLK1KHZ)IF (CLK1KHZEVENT AND CLK1KHZ=)THEN - 实现数码管动态选通 IF (S=111) THEN S000 ELSE S=S+1;SELLOUT4XXXX END CASE; CASE LOU

12、T4 IS - 七段译码显示LOUT701111110001000011000101011011001110011110100110011001011101101011011111010111000011110001111111110111100000004、编写完 VHDL 程序后,保存在wanexp17文件夹下。5、将自己编写的 VHDL 程序进行编译并生成模块符号文件,并对程序的错误进行修改,最终所有程序通过编译并生成模块符号文件,5个模块如下所示:6、新建一个图形编辑文件,将已生成的模块符号文件放入其中,并根据要求如下所示接起来。7、将自己编辑好的的程序进行编译仿真,最终通过编译,接好

13、管脚。9、 用下载电缆通过 JTAG 口将对应的 sof 文件加载到 FPGA中。观察实验结果是否与自己的编程思想一致。五、实验结果与现象当设计文件加载到目标器件后,从输入数字时钟源模块的输入端输入一个频率大于1Hz 的时钟信号,这时在数码管上显示这个时钟信号的频率值。如果使按下按钮开关s1,数码管上显示的值便被清零,改变数字信号源的时钟,数码管上显示的值与标值相差不大如输入10Khz,显示的是10.012Khz。六、仿真结果分析1 、当从50Mhz的系统时钟分出1Hz频率的信号clk1hz时,在clk1hz时钟的作用下生成测频的控制信号计数使能信号EN、内部清零信号CLR1及锁存信号LOAD波形如下所示:真值表如下所示:Clk1hz1enloadClr1与设计之初所设想的控制信号时序关系一致2、验证频率测评控制信号是否有效,波形如下所示:图中黑带与蓝带部分均为信号频率太高而无法在有限界面上显示由图中可知,当EN=1时,计数中间变量din开始计数,而当EN=0时,计数停止,当clr1=1时,计数中间值清零。与实验预期一样。七、实验心得体会。 本实验采用直接测频法进行频率测量。这种直接测频法的测量准确度与被测信号的频率有关,当待测信号频率较高时,测量准确度也较高,反之测量准确度较低。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2