实验三序列信号发生器与序列信号检测器的设计 、实验目的:用VHDL语言实现序列信号发生器和检测器的设计, 并对其进行仿真和硬件测试。 、实验要求: 1、利用VHDL语言设计一个8位任意序列的序列发生器,编译定 义引脚并下载到实验箱中进行验证。 2、利用VHDL语言设计一个8位任意序列的序检测器,显示检测 值,编译定义引脚并下载到实验箱中进行验证 、实验步骤 1、利用ⅴHDL语言设计一个具有串行输出和并行输出的任意序列 的8位序列发生器,编译并生产可调用的模块 、调用步骤1产生的模块生成定层原理图文件,选用工作模式4。 输入CLK定义为按键7,串行输出DoUT定义为串行口输出, 观测按键7按下时串行口输出的发光二极管情况。 3、利用VHDL语言设计一个可以检测任意序列的序列检测器,检 测长度为8位码元,编译并生产可调用的模块 4、调用步骤1和步骤3产生的模块生成定层原理图文件,选用 工作模式5。输入时钟信号CLK定义为CLK2(1Hz),并行输 出信号DP[7..0]定义为PIo15~PIo8,检测码元输入 SETB[7..0]分别对应按键8~按键1,检测输出AB[3..0] 采用数码管1显示检测值,编译并下载到实验箱中进行验证
实验三 序列信号发生器与序列信号检测器的设计 一、实验目的:用 VHDL 语言实现序列信号发生器和检测器的设计, 并对其进行仿真和硬件测试。 二、实验要求: 1、利用 VHDL 语言设计一个 8 位任意序列的序列发生器,编译定 义引脚并下载到实验箱中进行验证。 2、利用 VHDL 语言设计一个 8 位任意序列的序检测器,显示检测 值,编译定义引脚并下载到实验箱中进行验证。 三、实验步骤: 1、利用 VHDL 语言设计一个具有串行输出和并行输出的任意序列 的 8 位序列发生器,编译并生产可调用的模块。 2、调用步骤 1 产生的模块生成定层原理图文件,选用工作模式 4。 输入 CLK 定义为按键 7,串行输出 DOUT 定义为串行口输出, 观测按键 7 按下时串行口输出的发光二极管情况。 3、利用 VHDL 语言设计一个可以检测任意序列的序列检测器,检 测长度为 8 位码元,编译并生产可调用的模块。 4、调用步骤 1 和步骤 3 产生的模块生成定层原理图文件,选用 工作模式 5。输入时钟信号 CLK 定义为 CLK2(1Hz),并行输 出信号 DP[7..0] 定义为 PIO15~PIO8 ,检测码元输入 SETB[7..0]分别对应按键 8~按键 1,检测输出 AB[3..0] 采用数码管 1 显示检测值,编译并下载到实验箱中进行验证
序列发生器参考程序 工工 BRARY工EEE; USE IEEE STD LOGIC 1164.ALL ENTITY DSM IS PORT( CLK: IN STD LOGIC; DP: OUT STD LOGIC VECTOR(7 dOWNTo 0)i DOUT: OUT STD LOGIC ) i END DSM: ARCHITECTURE A OF DSM IS SIGNAL ST: STD LOGIC VECTOR(7 DOWNTo 0)i SIGNAL M: INTEGER RANGE 0 To 7; BEGIN ST<="01110010"; DP<=STi PROCESS (CLK) BEGIN IF CLK EVENT AND CLK=1 THEN M<=M-1 END工F; END PROCESS DOUT<=ST(M)i END Ai
序列发生器参考程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DSM IS PORT( CLK: IN STD_LOGIC; DP:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC ); END DSM; ARCHITECTURE A OF DSM IS SIGNAL ST:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL M:INTEGER RANGE 0 TO 7; BEGIN ST<="01110010"; DP<=ST; PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN M<=M-1; END IF; END PROCESS; DOUT<=ST(M); END A;
序列监测器参考程序: L工 BRARY工EEE USE IEEE STD LOGIC 1164.All; ENTITY SCHK IS PORT( DIN, CLK: IN STD LOGICi SETB: IN STD LOGIC VECTOR (7 DOWNTo 0)i AB: OUT STD LOGIC VECTOR(3 DOWNTO 0)) END SCHK ARCHITECTURE A OF SCHK IS SIGNAL Q: INTEGER RANGE 0 to 8i BEGIN PROCESS(CLK) BEGIN IF CLK EVENT AND CLK=1 THEN CASE C工s WheN 0=> IF DIN=SETB (7)TheN Q <=1 i ElSE Q<=0; END IFi When 1=> IF DIN=SeTb(6) then Q <=2 i Else Q <=0; END IF; When 2=> IF DIN=SETB(5)Then Q<=3 i ElSE Q <=0; END IFi When 3=> IF DIN=SETB (4)then Q <=4 i else Q <=0; END IFi When 4=> IF DIN=SETB(3)then Q <=5 else Q<=0; END IFi When 5=> IF DIN=SETB(2)then Q<=6 i ElSE Q <=0; END IFi When 6=> IF DIN=SETB(1)theN Q <=7 i Else Q <=0; END IFi WheN 7=> IF DIN=SETB(0)Then Q<=8 i ElSE Q <=0; END IFi WHEN OTHERS = Q<=0; END CASEi END工F; END PROCESSi PROCESS (Q)
序列监测器参考程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT( DIN,CLK: IN STD_LOGIC; SETB:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SCHK; ARCHITECTURE A OF SCHK IS SIGNAL Q:INTEGER RANGE 0 TO 8; BEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN CASE Q IS WHEN 0=> IF DIN=SETB(7) THEN Q <= 1 ; ELSE Q <= 0; END IF; WHEN 1=> IF DIN=SETB(6) THEN Q <= 2 ; ELSE Q <= 0; END IF; WHEN 2=> IF DIN=SETB(5) THEN Q <= 3 ; ELSE Q <= 0; END IF; WHEN 3=> IF DIN=SETB(4) THEN Q <= 4 ; ELSE Q <= 0; END IF; WHEN 4=> IF DIN=SETB(3) THEN Q <= 5 ; ELSE Q <= 0; END IF; WHEN 5=> IF DIN=SETB(2) THEN Q <= 6 ; ELSE Q <= 0; END IF; WHEN 6=> IF DIN=SETB(1) THEN Q <= 7 ; ELSE Q <= 0; END IF; WHEN 7=> IF DIN=SETB(0) THEN Q <= 8 ; ELSE Q <= 0; END IF; WHEN OTHERS => Q<=0; END CASE; END IF; END PROCESS; PROCESS(Q)
BEGIN CASE C工s WHEN0=>AB<="0000"; WHEN1=>AB<="0001"; WHEN2=>AB<="0010"; WHEN3=>AB<="0011"; WHEN4=>AB<="0100 WHEN5=>AB<="0101"; WHEN6=>AB<="0110"; WHEN7=>AB<="0111"; WHEN8=>AB<="1000"; WHEN OTHERS=> NUlLi END CASE; END PROCESSi END Ai
BEGIN CASE Q IS WHEN 0=> AB<="0000"; WHEN 1=> AB<="0001"; WHEN 2=> AB<="0010"; WHEN 3=> AB<="0011"; WHEN 4=> AB<="0100"; WHEN 5=> AB<="0101"; WHEN 6=> AB<="0110"; WHEN 7=> AB<="0111"; WHEN 8=> AB<="1000"; WHEN OTHERS=> NULL; END CASE; END PROCESS; END A;