实验5 序列检测器

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

数字系统设计与PLD应用

实验报告

实验名称:实验5序列检测器

学院:大数据与信息工程学院

专业:电子信息工程

姓名:李晓雪

学号:1108040198

年级:大四

任课教师:尉学军

2014 年 12 月 7 日

实验5 序列检测器

一.实验目的

(1)了解用状态机的方法设计序列检测器

(2)实验一个11010串行序列检测器,用VHDL语言描述该电路

二、实验原理

序列检测器的示意图如图一所示

11010序列检测器的状态转换图如图二所示

三、实验内容

(1)用VHDL语言编写11010序列检测器源程序。给出正确仿真波形图。

(2)用VHDL分别设计一个包含(11010)和不包含的序列发生器。

(3)将上述两个序列发生器分别和序列检测器结合成一个文件(级联),并编译、模拟获得正确的仿真波形。

四、实验结果

1、序列检测器(检测11010)

根据状态转换通过VHDL语言实现序列检测器:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY jc11010 IS

PORT(DIN,CLK,RST:IN STD_LOGIC;

SOUT:OUT STD_LOGIC);

END jc11010 ;

ARCHITECTURE BEHA V OF jc11010 IS

TYPE STATES IS (S0,S1,S2,S3,S4);

SIGNAL ST,NST:STA TES:=S0;

BEGIN

COM:PROCESS(ST,DIN) BEGIN

CASE ST IS

WHEN S0=>IF DIN='1'THEN NST<=S1;ELSE NST<=S0;END IF; WHEN S1=>IF DIN='1'THEN NST<=S2;ELSE NST<=S0;END IF; WHEN S2=>IF DIN='1' THEN NST<=S2;ELSE NST<=S3;END IF; WHEN S3=>IF DIN='1' THEN NST<=S4;ELSE NST<=S0;END IF; WHEN S4=>IF DIN='1' THEN NST<=S2;ELSE NST<=S0;END IF; WHEN OTHERS=>NST<=S0;

END CASE;

END PROCESS;

REG:PROCESS (CLK,RST)

BEGIN

IF RST='1' THEN ST<=S0;

ELSIF CLK'EVENT AND CLK='1' THEN ST<=NST;

END IF;

END PROCESS REG;

SOUT<='1' WHEN ST=S4 ELSE '0';

END BEHA V;

波形仿真结果:

2.采用状态机方法设计序列发生器

11010序列产生器的VHDL语言:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY csq11010 IS

PORT(CLK:IN STD_LOGIC;

Z :OUT STD_LOGIC);

END csq11010 ;

ARCHITECTURE RTL OF csq11010 IS

TYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5);

SIGNAL CURRENT_STATE,NEXT_STATE:STATE_TYPE; BEGIN

SYNCH: PROCESS

BEGIN

WAIT UNTIL CLK'EVENT AND CLK='1'; CURRENT_STATE<=NEXT_STATE;

END PROCESS;

STATE_TRANS:PROCESS(CURRENT_STATE)

BEGIN

CASE CURRENT_STATE IS

WHEN S0=>

NEXT_STATE<=S1;

Z<='1';

WHEN S1=>

NEXT_STATE<=S2;

Z<='1';

WHEN S2=>

NEXT_STATE<=S3;

Z<='0';

WHEN S3=>

NEXT_STATE<=S4;

Z<='1';

WHEN S4=>

NEXT_STATE<=S5;

Z<='0';

WHEN S5=>

NEXT_STATE<=S0;

Z<='1';

END CASE;

END PROCESS;

END RTL;

仿真波形结果:(产生的11010序列串)

3、随机序列产生器(产生序列1100101)

VHDL语言:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SY4 IS

PORT(CLK:IN STD_LOGIC;

Z :OUT STD_LOGIC);

END SY4 ;

ARCHITECTURE RTL OF SY4 IS

TYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5,S6);

SIGNAL CURRENT_STATE,NEXT_STA TE:STA TE_TYPE; BEGIN

SYNCH: PROCESS

BEGIN

WAIT UNTIL CLK'EVENT AND CLK='1';

CURRENT_STATE<=NEXT_STA TE;

END PROCESS;

STA TE_TRANS:PROCESS(CURRENT_STATE)

BEGIN

CASE CURRENT_STATE IS

WHEN S0=>

NEXT_STATE<=S1;

Z<='1';

WHEN S1=>

NEXT_STATE<=S2;

Z<='1';

WHEN S2=>

NEXT_STATE<=S3;

Z<='0';

WHEN S3=>

NEXT_STATE<=S4;

Z<='0';

WHEN S4=>

NEXT_STATE<=S5;

Z<='1';

WHEN S5=>

NEXT_STATE<=S6;

Z<='0';

WHEN S6=>

NEXT_STATE<=S0;

Z<='1';

END CASE;

END PROCESS;

END RTL;

波形仿真结果:

3、11010序列产生器与11010序列检测器级联后的电路图:

相关文档
最新文档