欢迎来到天天文库
浏览记录
ID:56907264
大小:319.50 KB
页数:8页
时间:2020-07-23
《EDA实验报告序列检测器的VHDL设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验七序列检测器的VHDL设计一、实验目的用状态机实现序列检测器的设计,了解一般状态机的设计与应用。二、实验设计原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。书上P168例5-11描述的电路完成对序列数“”的检测,当这
2、一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。三、实验内容用VHDL状态机设计一个8位序列信号检测器。要求:利用QuartusII进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序,最后进行引脚锁定并完成硬件测试实验。程序设计及程序分析如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSCHKISPORT(DIN,CLK,CLR:INSTD_LOGIC;AB:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDSC
3、HK;ARCHITECTUREbehavOFSCHKISSIGNALQ:INTEGERRANGE0TO8;SIGNALD:STD_LOGIC_VECTOR(7DOWNTO0);BEGIND<=“”;PROCESS(CLK,CLR)BEGINIFCLR=‘1'THENQ<=0;ELSIFCLK'EVENTANDCLK='1'THENCASEQISWHEN0=>IFDIN=D(7)THENQ<=1;ELSEQ<=0;ENDIF;WHEN1=>IFDIN=D(6)THENQ<=2;ELSEQ<=0;ENDIF;WHEN2=>IFDIN=D(5)TH
4、ENQ<=3;ELSEQ<=0;ENDIF;WHEN3=>IFDIN=D(4)THENQ<=4;ELSEQ<=0;ENDIF;WHEN4=>IFDIN=D(3)THENQ<=5;ELSEQ<=0;ENDIF;WHEN5=>IFDIN=D(2)THENQ<=6;ELSEQ<=0;ENDIF;WHEN6=>IFDIN=D(1)THENQ<=7;ELSEQ<=0;ENDIF;WHEN7=>IFDIN=D(0)THENQ<=8;ELSEQ<=0;ENDIF;WHENOTHERS=>Q<=0;ENDCASE;ENDIF;ENDPROCESS;PROCE
5、SS(Q)BEGINIFQ=8THENAB<=“1010”;ELSEAB<=“1011”;ENDIF;ENDPROCESS;ENDbehav;四、仿真分析编译仿真后的波形如下所示:由仿真结果可以看到,由于预置的密码数是“”,当输入的序列数与上述的数字相同,输出才由B变成A。五、硬件测试过程①.按实验板“系统复位”键;②.用键2和键1输入2位十六进制待测序列数“”;③.按键7复位(平时数码6指示显“B”);④.按键6(CLK)8次,这时若串行输入的8位二进制序列码(分别显示于数码管2和数码管1以及发光管D8~D0)与预置码“”相同,则数码6应从
6、原来的B变成A,表示序列检测正确,否则仍为B。六、实验内容②将8位待测预置数作为外部输入信号,即可以随时改变序列检测器中的比较数据。写出此程序的符号化单进程有限状态机。程序设计如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCHK2ISPORT(DIN,CLK,CLR:INSTD_LOGIC;SHR:INSTD_LOGIC_VECTOR(7DOWNTO0);AB:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDE
7、NTITYSCHK2;ARCHITECTUREbehavOFSCHK2ISSIGNALQ:INTEGERRANGE0TO8;SIGNALD:STD_LOGIC_VECTOR(7DOWNTO0);BEGIND<=SHR;PROCESS(CLK,CLR)BEGINIFCLR='1'THENQ<=0;ELSIFCLK'EVENTANDCLK='1'THENCASEQISWHEN0=>IFDIN=D(7)THENQ<=1;ELSEQ<=0;ENDIF;WHEN1=>IFDIN=D(6)THENQ<=2;ELSEQ<=0;ENDIF;WHEN2=>IF
8、DIN=D(5)THENQ<=3;ELSEQ<=0;ENDIF;WHEN3=>IFDIN=D(4)THENQ<=4;ELSEQ<=0;ENDIF;WHEN4=>IF
此文档下载收益归作者所有