(完整word版)EDA实验报告序列检测器的VHDL设计_第1页
(完整word版)EDA实验报告序列检测器的VHDL设计_第2页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、耦7虹程羯1实验七序列检测器的 VHDL 设计一、实验目的用状态机实现序列检测器的设计,了解一般状态机的设计与应用。二、实验设计原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串 行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出o。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相 同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。书上P168例5-11描述的电路完成对序列数“11100101”的检测,当这一串序列数高位在

2、前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。、实验内容用VHDL状态机设计一个8位序列信号检测器。要求:利用Quartusll进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时 序,最后进行引脚锁定并完成硬件测试实验。程序设计及程序分析如下:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK ISPORT(DIN, CLK, CLR : IN STD_LOGIC;AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END SCHK;ARCHITECTURE beh

3、av OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 8 ;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIND =“11100101”;PROCESS( CLK, CLR )BEGINIF CLR =1 THEN Q IFDIN =D(7)THEN Q = 1 ; ELSE Q IFDIN =D(6)THEN Q = 2 ; ELSE Q IFDIN =D(5)THEN Q = 3 ; ELSE Q IFDIN =D(4)THEN Q = 4 ; ELSE Q IFDIN =D(3)THEN Q = 5 ; ELSE Q

4、 IFDIN =D(2)THEN Q = 6 ; ELSE Q IF DIN = D(1) THEN Q = 7 ; ELSE Q IF DIN = D(0) THEN Q = 8 ; ELSE Q Q = 0 ;END CASE ;END IF ;END PROCESS ;PROCESS( Q )BEGINIF Q = 8 THEN AB =“1010”;ELSEAB =“1011”;END IF ;END PROCESS ;END behav ;四、仿真分析编译仿真后的波形如下所示: ELf u的甲-M1S.M Hi 2A uaUtjLrLrLrLrLrLrLrLrLrLrLrLrLrLr

5、LrLrLrLrLr _m_rurLn由仿真结果可以看到,由于预置的密码数是“11100101”,当输入的序列数与上述的数字相同,输出才由B变成A。五、硬件测试过程1按实验板“系统复位”键;2.用键2和键1输入2位十六进制待测序列数“11100101”;3.按键7复位(平时数码6指示显“B );4.按键6(CLK) 8次,这时若串行输入的8位二进制序列码(分别显示于数码管2和数码管1以及发光管D8D0)与预置码“11100101”相同,则数码6应从原来的B变成A, 表示序列检测正确,否则仍为B。六、实验内容将8位待测预置数作为外部输入信号,即可以随时改变序列检测器中的比较数据。写出此程序的符号

6、化单进程有限状态机。程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;贩 耳A 4 XIANGTAhl UNIVERSITY?jr I Ttw College- of Irrfomi-itJn r |Enqlncicf-ing uf Xlmngftii UnlTErvrtT&U1-HJ&U1-HJ竺越竺#7|7|L nL n1 L09KSi M 3ENTITY SCHK2 ISPORT (DIN,CLK,CLR: IN STD_LOGIC;耦虹程羯4SHR: IN ST

7、D_L0GIC_VECT0R(7 DOWNTO 0);AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY SCHK2;ARCHITECTURE behav OF SCHK2 ISSIGNAL Q : INTEGER RANGE 0 TO 8;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIND=SHR;PROCESS(CLK,CLR)BEGINIF CLR=1 THEN Q IF DIN=D(7) THEN Q=1; ELSE Q IF DIN=D(6) THEN Q=2; ELSE Q IF DIN=D(

8、5) THEN Q=3; ELSE Q IF DIN=D(4) THEN Q=4; ELSE Q IF DIN=D(3) THEN Q=5; ELSE Q IF DIN=D(2) THEN Q=6; ELSE Q IF DIN=D(1) THEN Q=7; ELSE Q IF DIN=D(0) THEN Q=8; ELSE Q Q=0;END CASE;END IF;END PROCESS;PROCESS(Q)BEGINIF Q=8 THEN AB=1010;ELSE AB=1011;END IF;END PROCESS;END ARCHITECTURE behav;七、仿真分析编译仿真后的波

9、形如下所示:待检测预置数为“00110011耦7虹程羯5IU0M1011TO.o0血i】L rC11 i廿砌BOanJ 1CUKTLrLrLrLrLrLrLrLrLTLrLrLrLrLrLrLrLrLrLrLn01)0J皿tonn nn nn nn ni tBiminiwoni翻11*sial:i) )BO哑!10呼11AMl11mui!0待检测预置数为“11010011由仿真结杲可以看到,只有当输入的序列数与由外部输入的预置数字相同,输出才由B变成A。ITtw College of IrTfomi-ition Erglnring EMhflntftMi UnlTErirtTionYwoioX

10、10L3GMRInIma11J-4!o-5*3.i56匹岬灿创期世gCIBm期泗呦现剛屈泗51S1一*-al-alalglotoo-D耦虹程羯6实验八用 Quartusll 设计正弦信号发生器一、实验目的进一步熟悉Quartusll及其LPM_ROM与FPGA硬件资源的使用方法。二、实验设计原理正弦信号发生器的结构由4个部分组成:计数器或地址发生器(这里选择6位);正弦信号数据ROM6位地址线,8位数据线),含有64个8位数据(一个周期);VHDL顶层设计、8位D/A(实验中用DAC0832代替)。顶层文件singt.vhd在FPGA中实现,包含两个部分:ROM勺地址信号发生器,由6位计数 器

11、担任;正弦数据ROM由LPM-ROM模块组成。LPM-RON底层是FPGA中的EAB或M4K等模块。地址发生器的时钟CLK的输入频率f。三、实验内容要求:在Quartus II上完成正弦信号发生器设计,包括时序仿真和资源利用情况了解。最 后在实验系统上进行硬件测试。程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SINGT ISPORT ( CLK : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END;A

12、RCHITECTURE DACC OF SINGT ISCOMPONENT data_romPORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);in clock : IN STD_LOGIC ;耦7虹程羯7q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);8END COMPONENT;SIGNAL Q1 : STD_LOGIC_VECTOR (5 DOWNTO 0);BEGINPROCESS(CLK )BEGINIF CLKEVENT AND CLK = 1 THENQ1Q1, q = DOUT, in clock=CLK)

13、;END;四、实验过程1定制初始化波形数据文件:建立.mif格式文件。Filenew other files,选择MemoryInitialization File选项,选择64点8位的正弦数据,弹出表格后输入教材图4-38中的数据。然后以romd.mif的名字保存至新建的文件夹中。2定制LPM_RO元件:利用MegaWizard Plug-In Manager定制正弦信号数据ROM宏功能块,并将以上的波形数据加载于此ROM中。并以data_rom.vhd名字将生成的用于例化的波形数据ROM文件保存至上述文件夹中。3用VHDL语言完成正弦信号发生器的顶层设计:此过程与实验七的步骤类似。五、仿真

14、分析编译仿真后的波形如下所示:昏M占枝4i T m官站.1 &2眉rtS彳PtwMti.IrMeiv-Bi. |13.69MEnd.由仿真波形可以看到,随着每一个时钟上升沿的到来, 这些数据与图4-38和图4-39所示的加载与五、硬件测试过程1.选择电路模式No.5,时钟接实验箱上的CLOCK0将DOUT(0)、DOUT、DOUT(7)分 别锁定于实验系统上与DAC0832相接的I/O口:PIO24、PIO25、PIO26、PIO27、PIO28、PIO29、PIO30、PIO31。编译下载后,打开+/-12V电压开关,选择CLOCK啲频率为750KHz再将示 波器接于实验箱A/D、D

15、/A板上的两个挂钩上观察正弦波形。2从示波器上可看到输出正弦波符合实验要求,由此证明设计是正确的。J L_rTTTTTTTTT rL rL rL rL rL rL rTJL r rTr-T-L r rL-L rT rL如二U3晦1. ns爭J Pl- N 爭 U3- li jS At输出端口将正弦波数据依次输出。将LPM_RO的数据比较,可以看出,设计是正确的。耦7虹程羯9本学期实验心得通过四次实验下来,我觉得对学EDA有了浓厚的兴趣。期间每一次的实验我都认真的对 待了,收获颇多,慢慢引导了我改怎样去学好这门EDA课程。第一次实验。实验做的是组合逻辑电路的VHDL设计和时序电路的VHDL设计,

16、我记得我是比较早做完的。因为在上课的吴老师就要我们装好quartusll软件,所以我在很有准备的对quartusll软件有了一定熟悉。开始我还在网上搜索怎么使用quartusll软件,而且还下载了quartusll视频教程,然后一步一步慢慢的学会了使用quartusll软件。当我独自在设计组合逻辑电路的VHDL设计时,我翻阅了书籍全加器的那一节,仔细看了例题3-18,因为这里也利用到了怎么样使用例化语句。而且在我编好了程序的时候,自 我感觉良好觉得程序没有什么错误。可是一当运行的时候,就出来了很多的错误,什么没有定义的,什么赋值符号出错的,第一次修改自己的程序真的是伤透了脑经,毕竟是第一次编写

17、VHDL程序,而且还有这么多的错误。然后设计时序电路的VHDL代码时,这个就简单的多 了,因为我们只要将其中进程中添加D进去,在把其他剩下的残枝落叶添加好,D锁存器就设计好了。在仿真测试的时候,由于我事先做好了充分的准备,在几乎不到半个小时的样子我的实验就做完了。然后我就在帮助其他的同学调试出错什么的。但是我碰到最多的问题就是他们在做“双2选1多路选择器”的时候,都忘记将底层文件添加进去,所以导致后面的程序频繁出错。 其他注意事项,比如实体名要和VHDL文本名一样,赋值符号别弄错了,程序包调用设置等等。第二次实验。使我印象最深刻的是,我在编写10进制加减可控计数器的时候费了好大的心思。因为我记

18、得老师布置给我们的作业里面有个设计“含有异步清零和计数使能的16位二进制加减可控计数器”,我想起了那个程序,然后我就努力的把那个程序改成10进制加减可控计数器。但是我在调试了N遍之后,老是显示什么“=”附近出错,我改了很久,仍X IAI4GTAN UN I VERBI程羯I The Clleoie- of IfTfnn-atn| Erfglneering of xlnoftBffi UnlTErprtr然没有改正确。然后我又找了我们班的同学,我把我设计此程序的意思讲解给他们听了,但是他们也费了很大的尽还是没有改出来。最后没有办法,只能求救吴老师帮忙了, 我把我设计此程序的意思和附加我设计的程序

19、通过邮箱发给了吴老师。等看到吴老师回复给我的邮件时,我才恍然大悟,我把if各种语句的使用全部弄混淆了,最后把我自己也弄的稀里糊涂 了,就这样经过老师的帮忙,我才得以设计出用CHOOS的高低电平来控制,高电平控制计数器的加法,低电平控制计数器的减法。然后在对应的将其他的地方编写好,费了我很大心思的10进制加减可控计数器就这样诞生了。第三次实验。我认真做好事先的预习准备, 验有点相像,都是利用数码管扫描来显示数据。 的程序对应起来,只是单片机用的是汇编语言,不同,但是大体的思路还是相同的,只不过单片机要设置延时程序,而 程序,系统已经帮我们调好了,只要我们把程序编好,放到机器里面用就 比之下,我学

20、会了硬件扫描显示电路的设计思路。 实验前的讲解,使得我们在实验操作过程中少走了弯路, 究程序,不断的发现问题。第四次实验。由于听说老师考试的时候不考状态机,习好。但是在得到同学们的程序后还是能迅速的将实验做出来。 实验,也积累了不少的经验,拿着程序迅速的将指示显示出来了, 进去的8位二进制序列码与预置码相同,因为我感觉这里的实验和我们学单片机的实于是我就把我们学的单片机上的程序和VHDLVHDL用的硬件描述语言,虽然两者的语言VHDL不要设置延时0K了。两者的对然后后面的程序还好做一些,经过吴老师才得以使得我们有充分的时间在研所以我这次的实验就没有充分的预 因为我认真做了前面三次的 当按CLK八下时,如果敲A字样。但是我并没有马上叫则在数码管上显示出不懂的地方问了同学才得以了解了此程Quartusll设计正弦信号发生器”,老师4-3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论