VHDL实验(完整版)

发布时间 : 星期日 文章VHDL实验(完整版)更新完毕开始阅读

END IF;

END PROCESS P_REG ;

P_DIV: PROCESS(FULL)

VARIABLE CNT2 : STD_LOGIC; BEGIN

IF FULL'EVENT AND FULL = '1' THEN

CNT2 := NOT CNT2; --如果溢出标志信号FULL为高电平,D触发器输出取反 IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0'; END IF; END IF;

END PROCESS P_DIV ; END;

实验五 序列检测器设计

一、实验目的

用状态机实现序列检测器的设计,了解一般状态机的设计与应用 二、实验原理

序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。电路完成对序列数“11100101”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。 三、实验内容

(1)实验内容1:利用 QuartusII进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序,最后进行引脚锁定并完成硬件测试实验。建议选择电路模式No.8(附录图10),用键7(PIO11)控制复位信号CLR;键6(PIO9)控制状态机工作时钟CLK;待检测串行序列数输入DIN接PIO10(左移,最高位在前);指示输出AB接PIO39~PIO36(显示于数码管6)。下载后:①按实验板“系统复位”键;②用键2和键1输入2位十六进制待测序列数“11100101”;③按键7复位(平时数码6指示显“B”);④按键6(CLK)8次,这时若串行输入的8位二进制序列码(显示于数码2/1和发光管D8~D0)与预置码“11100101”相同,则数码6应从原来的B变成A,表示序列检测正确,否则仍为B。

(2)实验内容2:将8位待检测预置数由键4/键3作为外部输入,从而可随时改变检测密码。

四、实验仪器、设备 计算机、Quartus II软件 五、实验步骤

1、实验程序 LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SCHK IS

PORT(DIN,CLK,CLR : IN STD_LOGIC; --串行输入数据位/工作时钟/复位信号

AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --检测结果输出 END SCHK;

ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 ;

SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); --8位待检测预置数(密码=E5H) BEGIN

D <= \位待检测预置数

PROCESS( CLK, CLR ) BEGIN

IF CLR = '1' THEN Q <= 0 ;

ELSIF CLK'EVENT AND CLK='1' THEN --时钟到来时,判断并处理当前输入的位 CASE Q IS

WHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ;

END PROCESS ;

PROCESS( Q ) --检测结果判断输出 BEGIN

IF Q = 8 THEN AB <= \ --序列数检测正确,输出 \ELSE AB <= \ --序列数检测错误,输出 \END IF ;

END PROCESS ; END behav ;

2、根据实验要求配置好实验参数,完成实验内容(1)和(2),包括编译、引脚设置、硬件下载测试。 六、实验内容记录

1、将实验内容(2)需要更改的程序进行说明。

实验六 实操考试

一、考试时间及要求

考试时间为2节课,90分钟,一人一台电脑和实验箱,随机抽题,独立完成,不能使用U盘,手机,可以带书。做完所有步骤后,举手示意老师,准备答辩。于考试完一周内上交VHDL考试报告。 二、考试题目

题目一:8位全加器的设计

要求:用原理图的输入方式,按照半加器,一位全加器,8位全加器的分层设计方法,具体内容可参考实验三。最后,验收内容包括:8位全加器的原理图,波形仿真,引脚设置,下载测试。

题目二:密码锁的设计

要求:密码可以外界输入,VHDL文本编辑,具体内容可参考实验五。最后,验收内容包括:编程,波形仿真,引脚设置,下载测试。

题目三:7段数码显示译码器设计

要求:VHDL文本编辑,具体内容可参考书上P117,最后,验收内容包括:编程,波形仿真,引脚设置,下载测试。

题目四:3-8译码器设计

要求:VHDL文本编辑,具体内容可参考书上P85,最后,验收内容包

联系合同范文客服:xxxxx#qq.com(#替换为@)