欢迎来到天天文库
浏览记录
ID:14425428
大小:344.50 KB
页数:16页
时间:2018-07-28
《实验二进制分频器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、二进制分频器一.实验目的1.分频器的原理2.二进制分频器的设计二.分频器的原理1.分频器就是对较高频率的信号进行分频,得到较低频率的信号。2.分频系数(倍率)rate=fin/fout三.二进制分频器的设计二进制分频就是对输入时钟进行2的整数次幂分频。1.设计原理:(rate=2N,N是整数)定义一个N位的计数器,对输入的时钟脉冲进行计数,计数结果的第N-1位就是对输入时钟的2的N次幂分频。将相应的位数取出即可得到分频时钟。2.二进制分频器的VHDL源程序nLibraryieee;nUseieee.std_log
2、ic_1164.all;nUseieee.std_logic_unsigned.all;nUseieee.std_logic_arith.all;nEntityfdivisngeneric(N:integer:=3);--rate=2N,N为正整数nport(nclkin:INstd_logic;nclkout:OUTstd_logicn);nEndfdiv;nArchitectureaoffdivisnsignalcnt:std_logic_vector(N-1downto0);nBeginnprocess(c
3、lkin)nbeginnif(clkin'eventandclkin='1')thenncnt<=cnt+1;nendif;nendprocess;nclkout<=cnt(N-1);nEnda;四.仿真结果1.从波形图可以看到,clkout是clkin的8分频,也就是2的3次幂分频。2.如果要产生其他次幂分频,直接修改generic类属变量参数即可。五.实验结论本次实验使我们了解和认识AlteraFPGA/CPLD软件,理论与实践相结合,为以后的学习打下坚实的基础。实验二序列信号检测器一.实验目的(1)掌握关于
4、串行序列的设计。(2)掌握状态机的设计。二.实验要求(1)设计序列发生器,产生序列:0111010011011010。(2)设计检测器,若检测到串行序列11010,则输出为1,否则输出为0,并对其进行仿真。三.实验原理每收到一个符合要求的串行码就需要用一个状态进行记忆。串行码长度为5位,需要5个状态;另外,还需要增加一个“未收到一个有效位”状态,共6个状态;画出状态转换图,如图所示,这是一个莫尔状态机。6个状态机根据编码原则可以用3位二进制数来表示。011011100ABCDFE当到达F状态时,zout输出为1,
5、否则为0。四.VHDL源程序【程序源代码】libraryieee;useieee.std_logic_1164.all;entitydetectisport(din,clk,clr:instd_logic;dout:outstd_logic);enddetect;architecturertlofdetectistypestateis(s0,s1,s2,s3,s4,s5,s6,s7);signalcurrent_state,next_state:state;beginprocess(clk,clr)beginif
6、clr='0'thenquartusIIcurrent_state<=s0;elsifclk'eventandclk='1'thencurrent_state<=next_state;elsenull;endif;endprocess;process(din,current_state)begincasecurrent_stateiswhens0=>dout<='0';ifdin='1'thennext_state<=s1;elsenext_state<=s0;endif;whens1=>dout<='0';if
7、din='1'thennext_state<=s2;elsenext_state<=s0;endif;whens2=>dout<='0';ifdin='1'thennext_state<=s3;elsenext_state<=s0;endif;whens3=>dout<='0';ifdin='0'thennext_state<=s4;elsenext_state<=s0;endif;whens4=>dout<='0';ifdin='0'thennext_state<=s5;elsenext_state<=s0;e
8、ndif;whens5=>dout<='0';ifdin='1'thennext_state<=s6;elsenext_state<=s0;endif;whens6=>dout<='0';ifdin='0'thennext_state<=s7;elsenext_state<=s0;endif;whens7=>ifdin='1'thennext_state<=s0;dout
此文档下载收益归作者所有