内容发布更新时间 : 2024/12/28 11:30:10星期一 下面是文章的全部内容请认真阅读。
.
教育资料八位序列检测器设计
班级:1302012 学号:13020120055 姓名:郭春晖
.
一、设计说明
使用quartus软件进行仿真和验证,并且还可以检测其他的序列,只需要修改一部分代码就可以实现。 二、方案
工作原理:基于FPGA的多路脉冲序列检测器的设计方案,使用VHDL语言设计时序逻辑电路,先设计序列发生器产生序列:1011010001101010;再设计序列检测器,检测序列发生器产生序列,若检测到信号与预置待测信号相同,则输出“1”,否则输出“0”,并且将检测到的信号的显示出来。 三、单元模块设计
1、 序列信号发生器
序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。 REG Q REG Q
s0 1 s8 0 s1 0 s9 1 s2 1 s10 1 s3 1 s11 0 s4 0 s12 1 s5 1 s13 0 s6 0 s14 1 s7 0 s15 0 序列信号发生器的代码如下:
教育资料
.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY SHK IS
PORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC ); END SHK;
ARCHITECTURE behav OF SHK IS TYPE
FSM_ST
(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);
SIGNAL REG:FSM_ST; SIGNAL Q:STD_LOGIC; BEGIN
PROCESS(CLK,RST) BEGIN
IF RST ='1' THEN REG<=s0;Q<='0'; ELSIF CLK'EVENT AND CLK='1' THEN CASE REG IS
WHEN s0=> Q<='1'; REG<=s1; WHEN s1=> Q<='0';REG<=s2; WHEN s2=> Q<='1';REG<=s3; WHEN s3=> Q<='1';REG<=s4; WHEN s4=> Q<='0';REG<=s5; WHEN s5=> Q<='1';REG<=s6; WHEN s6=> Q<='0';REG<=s7; WHEN s7=> Q<='0';REG<=s8; WHEN s8=> Q<='0';REG<=s9; WHEN s9=> Q<='1';REG<=s10; WHEN s10=> Q<='1';REG<=s11; WHEN s11=> Q<='0';REG<=s12;
教育资料
IS