实验四8序列检测器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四序列检测器的设计

一、实验目的

1)了解序列检测器的工作原理

2)熟悉MAX+plusII软件的基本使用方法

3)熟悉EDA实验开发的基本使用方法

4)学习VHDL程序中数据对象,数据类型,顺序语句,并行语句的综合使用

二、实验内容

设计一个序列检测器,当序列检测器连续收到一组串行的二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同,在检测过程中,任何一位不相等都将回到初始状态重新开始检测。

三、实验条件

开发软件:MAX+plus II 9.23 Baseline

硬件设备:装有windows7的pc机

四、实验设计

1)系统的原理框架图

2)VHDL源程序

chk.vhd源代码

library ieee;

use ieee.std_logic_1164.all;

entity chk is

port(din: in std_logic;

clk,clr:in std_logic;

d:in std_logic_vector(7 downto 0);

ab:out std_logic_vector(3 downto 0));

end entity chk;

architecture art of chk is

signal q:integer range 0 to 8;

begin

process(clk,clr)is

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)is

begin

if q=8 then ab<="1010";

else ab<="1011";

end if;

end process;

end architecture;

3)管脚图

五、实验结果及总结

系统时序仿真结果

从系统仿真结果可以看出,本系统完全符合设计要求,同时从仿真结果可以看出,从输入到输出有一定的延时,在14ns左右,这正是器件延时特征的反映。

实验过程出现的问题几解决方法:

感觉实验比起前面的8位乘法器简单多了,除了以前遇到的问题基本上没什么其他的问题。

相关文档
最新文档