序列信号发生器和序列信号检测器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:□验证□综合□设计□创新实验日期:实验成绩:
实验三序列信号检测器设计
(一)实验目的
1.进一步熟悉PH-1V型实验装置和QuartusⅡ软件的使用方法;
2.学习有限状态机法进行数字系统设计;
3.学习使用原理图输入法进行设计。
(二)设计要求
完成设计、仿真、调试、下载、硬件测试等环节,在PH-1V型EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:
1.先用原理图输入法设计0111010011011010序列信号发生器;
2.其最后8BIT数据用LED显示出来;
3.再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列
“11010”则输出为“1”,否则输出为“0”;
(三)主要仪器设备
1.微机 1台
2.QuartusII集成开发软件1套
3.PH-1V型EDA实验装置1套
(四)实验总体设计
本实验要求先设计一个信号发生器,采用原理图设计方法,要求产生
0111010011011010序列,16位,便可采用74161计数器和74151选择器,161计数输出QD,QC,QB,QA从0000计至1111,然后将161计数输出低三位QC,QB,QA分别接到151的C,B,A端,高位QD用来控制151两片的片选,即两片151分别实现序列的高八位和低八位的输出。最后将二片151的输出相或便可得到最后要产生的序列。
序列检测器即为一个状态机,首先画出状态转移图,根据状态转移图设计
出序列检测器,当检测到预置的序列,则RESULT输出1,否则输出0 (五)实验重难点设计
1. 用原理输入法设计序列信号发生器
(1)打开Quartus II软件,进入编辑环境。
(2)创建新的原理图BDF文件,命名为FASHENGQI,根据其总体设计思路设计
出如下原理图:
1. 用文本输入法设计序列信号检测
(1)打开Quartus II软件,进入编辑环境。
(2)创建新的文本文件VHDL,命名为ztj,根据状态机总体设计思路设计出如(3)下语句程序:
library ieee;
use ieee.std_logic_1164.all;
entity ztj is
port (clk,reset: in std_logic;
x: in std_logic;
result: out std_logic);
end ztj;
architecture behav of ztj is
type m_state is(s0,s1,s2,s3,s4,s5);
signal present_state,next_state:m_state;
signal temp:std_logic;
begin
process(reset,clk)
begin
if reset ='1' then
present_state<=s0;
elsif clk='1' and clk'event then
result<=temp;
present_state<=next_state;
end if;
end process;
(4)经编译成功后,点击File---Creat/Update---Creat Simbol Files For Current File 后生成STAKE模块如下:
(1)打开Quartus II软件,进入编辑环境。
(2)创建新的文本文件VHDL,命名为_state ,根据状态机总体设计思路设计出如下语句程序:
(3)process(present_state,x)
begin
case present_state is
when s0=>
if x='1' then next_state<=s1;
else next_state<=s0;
end if;
temp<='0';
when s1=>
if x='1' then next_state<=s2;
else next_state<=s0;
end if;
temp<='0';
when s2=>
if x='0' then next_state<=s2;
else next_state<=s3;
end if;
temp<='0';
when s3=>
if x='1' then next_state<=s4;
else next_state<=s0;
end if;
temp<='0';
when s4=>
if x='0' then next_state<=s5;
temp<='1';
else next_state<=s2;
temp<='0';
end if;
when s5=>
if x='1' then next_state<=s1;
else next_state<=s0;
end if;
temp<='0';
end case;
end process;
end behav;
(4)经编译成功后,点击File---Creat/Update---Creat Simbol Files For Current File 后生成STAKE模块如下:
3. 用文本输入法设计序列移位寄存器
(1)打开Quartus II软件,进入编辑环境。
(2)创建新的文本文件VHDL,命名为YIWEI,根据总体设计思路设计出如下语句程序:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY YIWEI IS
PORT(CLK0 : IN STD_LOGIC;
DIN : IN STD_LOGIC;
DOUT : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0));
END YIWEI;
ARCHITECTURE one OF YIWEI IS
SIGNAL DOUT1: STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS(CLK0,DIN)
BEGIN
IF CLK0'EVENT AND CLK0='1' THEN
DOUT1 <= DOUT1(6 DOWNTO 0)&DIN;
END IF;
IF DOUT1="11011010" THEN
DOUT<=DOUT1;
END IF;
END PROCESS;
END one;
(3)经编译成功后,点击File---Creat/Update---Creat Simbol Files For