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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(8位十进制显示数字频率计带周期设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8位十进制显示数字频率计带周期设计报告.docx

1、8位十进制显示数字频率计带周期设计报告EDA期末考试设计报告 设计题目:8位十进制显示数字频率计(带周期测量) 学校:梧州学院 系别:电子信息工程系 班别:09电本2班 姓名:陈迪学号:200900604215 组员:刘芸云 王缉俭 指导老师:黄玉健1、设计内容:8位十进制显示数字频率计(带周期测量)。二、设计目的与要求:1、 设计电路实现测量199999999Hz方波信号的频率以及其周期,并以十进制的方式显示。2、 要求其数值用七段LED数码管或液晶屏显示。3、 在实验系统上硬件测试,验证此设计的功能。4、 画出实体图,设计原理图,要求用Protel设计出具体的电路原理图。三、设计原理:8位

2、十进制显示数字频率计(带周期测量)是由8位十进制频率计、8位十进制周期测量器和带锁存功能的64选32数据选择器构成。频率计基准信号采用8Hz的方波信号,而周期测量采用基准信号为50MHz的方波信号。其中,频率计和周期测量由相同的32位数据锁存器和8位十进制计数器及不同的测频控制电路构成。为使电路设计更加简单快捷,且方便阅读与理解,本电路使采用模块化的设计思想,先由VHDL源程序对各个模块进行独立编写、测试,然后封装,再用原理图方式进行连接、整合与波形和硬件仿真。例如将用CLOCK5、CLOCK2输入标准频率,CLOCK0输入被测频,用数码管显示频率和周期。Protel设计原理图:1、频率测量的

3、基本原理:根据频率的定义,若某一信号在T时间内重复变化N次,则可知该信号的频率为:f =N/T 对此可采用数字逻辑电路中的门电路来实现,如图:在与门端加入被测信号,另一端加宽度为T1的控制信号(称闸门信号),输出端仅能在T1时间内有波形的出现,然后送入计数器计数,得N*T2=T1所以f =N/T1。进一步分析可知,多周期测量可以减小误差。因此,电路设计时我们采用基准信号的8个周期为一个T1。如图CNT-EN信号 在T1时间结束的同时输出一个作用于计数器锁存信号load,在下一个T1来临前输出一个清零信号RST使得计数器复位,为下一次测量做好准备。电路的基准信号为8Hz,由方程可知f=N/(8*

4、(1/8))=N,从而计数器的数值就是被测信号的频率。2、测量周期的基本原理:如图所示为计数器测量信号周期的原理框图。它是由上图的 标准信号和输入信号位置对调而构成的。可以看出,被测信号经过放大后,形成闸门信号,周期为T2。标准频率的周期为T1,在闸门时间内,标准频率通过闸门形计数脉冲,送至计数器计数,进过译码显示为N。所以T2=N*T1=N/f1。同理,多周期测量也可减小误差,但是由于被测信号为测频控制信号,当被测信号频率较低时,测量需要较长时间,因此我们的电路只采用被测信号的2倍周期进行测量。 为使能测量更高的频率,我们采用了50MHz的信号为计数信号。电路同样设置了锁存和清零的输出信号,

5、同时为防止高频率时锁存和清零过快,电路在闸门时间结束后设置了较长的过渡时间。由方式T=N/(2*50M)=N/100000000,所以数码管显示的最高位位权为0.1依次类推为0.01一直到小数点后8位。当信号小于1Hz和大于100MHz时都超出量程。3、8位十进制计数器的构成:用VHDL语言设计带进位的1位十进制计数器,然后封装如图,再用8个1位计数器和与门连接成8位的十进制计数器。4、利用VHDL语言来实现各个结构模块:1.带进位的1位10进制计数器COUNTER .VHD带进位的一位十进制计数器 LIBRARY IEEE; -带进位的一位十进制计数器 USE IEEE.STD_LOGIC_

6、1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -允许用户对操作符重新定义 ENTITY COUNTER ISPORT( CLK,RST,EN: IN STD_LOGIC; -clk时钟频率,rst清零,en使能端 DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -4位输出到7段数码管 COUT:OUT STD_LOGIC -进位信号 );END COUNTER;ARCHITECTURE one OF COUNTER ISBEGINPROCESS(CLK,RST,EN) -时钟,清零,使能为敏感信号 VARIABLE Q: ST

7、D_LOGIC_VECTOR(3 DOWNTO 0); -定义变量Q为4位 BEGINIF RST=1 THEN Q:=(OTHERS =0); -如果rst为高电平,变量Q清零 ELSIF CLKEVENT AND CLK=1 THEN -否则,若clk为上升沿,即上升沿触发 IF EN=1 THEN IF Q0); -否则清零 END IF;END IF;END IF;IF Q =1001 THEN COUT=1; -当Q为9时输出进位信号 1 ELSE COUT =0;END IF; -否则输出 0 DOUT=Q; -把变量信号输出 END PROCESS;END one; 2.32位锁

8、存器REG32B.VHDLIBRARY 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 one OF REG32B ISBEGIN PROCESS(LK, DIN) BEGIN IF LKEVENT AND LK =

9、1 THEN DOUT = DIN;-上沿边触发锁存 END IF; END PROCESS;END one; 3.基准频率为8HZ的测频控制电路FTCTRL.VHDLIBRARY IEEE; -频率为8HZ的测频控制电路,用于频率计 USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL IS PORT (CLKK : IN STD_LOGIC; - 8Hz CNT_EN : OUT STD_LOGIC; - 计数器时钟使能 RST_CNT : OUT STD_LOGIC; - 计数器清零 Load

10、: OUT STD_LOGIC ); - 输出锁存信号 END FTCTRL;ARCHITECTURE one OF FTCTRL IS SIGNAL M: STD_LOGIC; SIGNAL C: STD_LOGIC_VECTOR(3 DOWNTO 0 ); -计数信号 BEGIN K1:PROCESS( CLKK,C )-16分频 BEGIN IF RISING_EDGE(CLKK)THEN IF(C=1111) THEN C=0000; ELSE C=C+1;END IF;-计数为15是清零 IF(C=0001) THEN M=NOT M;ELSIF (C=1001) THEN M=NO

11、T M;-由1 开始跳变,变到9时跳变 END IF;END IF; END PROCESS; CNT_EN = M; -输出16分频后的波形 Load=NOT M;-输出锁存信号 F2:PROCESS (C,M)- 产生计数器清零信号 BEGIN IF (C=1101)AND M=0 THEN RST_CNT=1;ELSE RST_CNT=0;END IF;-计数为13时为1,否则为0 END PROCESS;END one; 4.基准频率为50MHZ的测频控制电路FTCTRL2.VHDLIBRARY IEEE; -频率为50MHZ的测频控制电路,USE IEEE.STD_LOGIC_116

12、4.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL2 IS PORT (CLKK2 : IN STD_LOGIC; - 50MHz CNT_EN2 : OUT STD_LOGIC; - 计数器时钟使能 RST_CNT2 : OUT STD_LOGIC; - 计数器清零 Load2 : OUT STD_LOGIC ); - 输出锁存信号 END FTCTRL2;ARCHITECTURE one OF FTCTRL2 IS SIGNAL M: STD_LOGIC; SIGNAL C: STD_LOGIC_VECTOR(3 DOWNTO 0 );

13、-计数信号 BEGIN K1:PROCESS( CLKK2,C )-分频 BEGIN IF RISING_EDGE(CLKK2)THEN IF(C=1111) THEN C=0000; ELSE C=C+1;END IF;-清零 IF(C=0001) THEN M=NOT M;ELSIF (C=0011) THEN M=NOT M;-由1 开始跳变? END IF;END IF; END PROCESS; CNT_EN2 = M; -输出分频后的波形 Load2=NOT M;-锁存信号 F2:PROCESS (C,M,CLKK2)- 产生计数器清零信号 BEGIN IF C=1010 AND(

14、M=0)AND CLKK2=0 THEN RST_CNT2=1;ELSE RST_CNT2=0;END IF;-计数为0时为1,否则为0 END PROCESS;END one; 5.带锁存的2选1数据选择器MUX2.VHDlibrary ieee;use ieee.std_logic_1164.all;entity mux2 is -64位输入的2选1数据选择器 port ( L1,L2:OUT STD_LOGIC; -L1锁存指示灯,L2信号选通灯 S,EN:in std_logic;-选择,锁存 AIN,BIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);-输入通道

15、A DOUT3:out STD_LOGIC_VECTOR(31 DOWNTO 0)-数据输出 );end entity mux2;architecture one of mux2 isSIGNAL M:STD_LOGIC_VECTOR(31 DOWNTO 0);-寄存 begin process(AIN,BIN,S,EN)beginIF EN=0 THEN-非0锁存 if S=1 then M=AIN;else M=BIN;-选通 end if;END IF;end process;DOUT3=M;L1=EN;L2=S;end architecture one ;5、利用原理图来完成各个模块的

16、链接与功能的实现:1.8位十进制计数器功能的实现: 先编译COUNTER .VHD生成原理图文件,如下图: ,再用元件库中的与门与其链接,然后加上输入输出端口,从而完成电路。具体链接如下:电路完成编译后,继续生产如下原理图文件,为下一阶段工作做好准备。2.8位频率计功能的实现:先编译REG32B.VHD和FTCTRL.VHD,分别生成原理图文件,如下图: 和 。再与上面的8位十进制计数器原理图文件与端口进行链接,完成计数器功能电路。具体链接如下:同时,电路完成编译后,继续生产如下原理图文件,为下一阶段工作做好准备。3. 周期测量功能的实现:先编译FTCTRL2.VHD生成原理图文件,如下图:,

17、再用已经编译生成的计数器和锁存器原理图链接,完成周期测量功能电路。具体链接如下。电路完成编译后,也生产如下原理图文件,为下一阶段工作做好准备。3.顶层文件用原理图表示实现测频测周功能,设计如下:编译数据选择器MUX2.VHD生成原理图文件,如图:然后与已经生成的测频和测周的原理图文件进行连接,生成带有锁存和选通功能,可显示频率和周期的频率计。设计如下:6编译仿真、下载:1、波形仿真:设计好程序后便保存进行编译,查错,修改,成功后,进行仿真,观察波形。如下图:PCLK的基准频率为50MHz,但在综合仿真时,过高的频率需要较长的仿真时间,为了提高软件的效率,PCLK在仿真时设置基准频率为32Hz,

18、FCLK设置为8Hz,测试频率为16Hz.同时对锁存以及选通进行测试。在不同的选通状态下,由方程可知周期T=N/64和f=N。波形仿真结果 T=4/64=0.0625s,f=16Hz,经检验,波形正确。2、引脚分配:选用实验模式5,键1(PIO 0)用于锁存信号,cloke2的8Hz用于频率基准信号,cloke0用于被测频率的输入,键2(PIO1)用于选通信号,D1用于锁存指示灯,D2用于选通指示灯,8个数码管用于显示频率或周期大小。具体引脚分配如下:信号名 引脚名EN PIN_8 DATAOUT30 PIN_95FCLK PIN_54 DATAOUT31 PIN_96FIN PIN_126L

19、1EN PIN_20L2S PIN_21PCLK PIN_124S PIN_9DATAOUT0 PIN_30DATAOUT1 PIN_31DATAOUT2 PIN_32DATAOUT3 PIN_33DATAOUT4 PIN_36DATAOUT5 PIN_37DATAOUT6 PIN_38DATAOUT7 PIN_39DATAOUT8 PIN_41DATAOUT9 PIN_42DATAOUT10 PIN_65DATAOUT11 PIN_67DATAOUT12 PIN_68DATAOUT13 PIN_69DATAOUT14 PIN_70DATAOUT15 PIN_72DATAOUT16 PIN_7

20、3DATAOUT17 PIN_78DATAOUT18 PIN_79DATAOUT19 PIN_80DATAOUT20 PIN_81DATAOUT21 PIN_82DATAOUT22 PIN_83DATAOUT23 PIN_86DATAOUT24 PIN_87DATAOUT25 PIN_88DATAOUT26 PIN_89DATAOUT27 PIN_90DATAOUT28 PIN_913、硬件测试:再次编译程序,成功后,下载到实验箱EP1K30TC144-3FPGA中,选用模式5,拨下显示开关拨码4。键2未按下时,输入低电平,8个数码管显示为cloke0所选信号的频率。当按下键1,输出高电平,D

21、1亮,信号被锁存,数码管数字不发生改变。按起键1,停止锁存,使D1灭。按下键2,使其输入高电平,周期选通灯D2亮,8个数码管显示为cloke0所选信号的周期。按下键1,D1亮起,信号再次被锁存,数码管数字不变。注释:超出量程时,显示值为0。通过实物验证,该设计满足所要求的各个功能,达到了设计要求与目的。七、设计结论与总结:1、本设计利用计数器和闸门原理来测试信号的频率与周期,完成8位十进制频率计(周期)的功能。2、本设计可以完全通过VHDL语言来描述,也可以用原理图的方法来实现。通过用两种方法的结合,提高了工作效率,并让我们进一步对Quartus的操作以及VHDL语言有了更深的理解。3、通过此设计实验,让我们对EDA课程有了更深的了解,它不仅功能强大,富于实用性,并且在未来的发展中还有非常广阔的应用前景。同时,实验过程中,我们也体会到了团队合作的力量,以及团队精神的重要。4、感谢黄玉健老师的悉心指导。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1