EDA实验报告实验三:序列信号发生器与检测器设计++++

更新时间:2023-10-30 03:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Nb

大学实验报告

学生姓名: EDA教父 学 号: 6100xxxx99 专业班级: 通信 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2012-10-15 实验成绩:

实验三 序列信号发生器与检测器设计

一、实验目的

1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法; 2、学习有限状态机法进行数字系统设计; 3、学习使用原理图输入法进行设计

二、设计要求

完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:

1、先用原理图输入法设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来; 2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则输出为“1”,否则输出为“0”;

三、主要仪器设备

1、微机

1台 1套 1套

2、QuartusII集成开发软件 3、EDA实验装置

四、实验原理

1、序列信号发生器 CNT ZOUT CNT ZOUT 复位信号CLRN。当CLRN=0时,使CNT=0000,当CLRN=1时,不影响程序运行,每来一个CLK脉冲CNT加一。

2、序列信号检测器 状态转移图:

1

0000 0 1000 1 0001 1 1001 1 0010 1 1010 0 0011 1 1011 1 0100 0 1100 1 0101 1 1101 0 0110 0 1110 1 0111 0 1111 0

五、实验步骤 1、信号发生器

1) 建立工作库文件夹,输入设计项目VHDL代码,如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY XLSIGNAL16_1 IS

PORT( CLK,CLRN:IN STD_LOGIC;

LED:BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0); LEDOUT:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); ZOUT:OUT STD_LOGIC); END XLSIGNAL16_1;

ARCHITECTURE one OF XLSIGNAL16_1 IS

SIGNAL CNT:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL ZREG:STD_LOGIC;

--SIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN

process(clK) begin

case cnt is

2

WHEN\1000\=>LED<=\101001\; WHEN\1001\=>LED<=\010011\; WHEN\1010\=>LED<=\100110\; WHEN\1011\=>LED<=\001101\; WHEN\1100\=>LED<=\011011\; WHEN\1101\=>LED<=\110110\; WHEN\1110\=>LED<=\101101\; WHEN\1111\=>LED<=\011010\; WHEN\0000\=>LED<=\110100\; WHEN\0001\=>LED<=\101001\; WHEN\0010\=>LED<=\010011\; WHEN\0011\=>LED<=\100111\; WHEN\0100\=>LED<=\001110\; WHEN\0101\=>LED<=\011101\; WHEN\0110\=>LED<=\111010\; WHEN\0111\=>LED<=\110100\; WHEN OTHERS=>LED<=NULL; END CASE; END PROCESS;

PROCESS(CLK,CLRN) BEGIN

IF(CLRN='0')THEN CNT<=\0000\;ELSE IF(CLK'EVENT AND CLK='1')THEN CNT<=CNT+'1'; END IF; END IF; END PROCESS; PROCESS(CNT) BEGIN

CASE CNT IS

3

WHEN\0000\=>ZREG<='0'; WHEN\0001\=>ZREG<='1'; WHEN\0010\=>ZREG<='1'; WHEN\0011\=>ZREG<='1'; WHEN\0100\=>ZREG<='0'; WHEN\0101\=>ZREG<='1'; WHEN\0110\=>ZREG<='0'; WHEN\0111\=>ZREG<='0'; WHEN\1000\=>ZREG<='1'; WHEN\1001\=>ZREG<='1'; WHEN\1010\=>ZREG<='0'; WHEN\1011\=>ZREG<='1'; WHEN\1100\=>ZREG<='1'; WHEN\1101\=>ZREG<='0'; WHEN\1110\=>ZREG<='1'; WHEN\1111\=>ZREG<='0'; WHEN OTHERS=>ZREG<='0'; END CASE; END PROCESS; ZOUT<=ZREG; LEDOUT<=LED; end one;

2)对其进行波形仿真,如下图:

3)将其转换成可调用元件如图:

4

2、信号检测器

1)建立工作库文件夹,输入设计项目VHDL代码,如下:

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS

PORT(DIN, CLK, CLR : IN STD_LOGIC; ss : OUT STD_LOGIC_VECTOR END SCHK;

ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 5 ;

SIGNAL D : STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN

D <= \ PROCESS( CLK, CLR ) BEGIN

IF CLR = '1' THEN Q <= 0 ; ELSIF CLK'EVENT AND CLK='1' THEN CASE Q IS

WHEN 0=> IF DIN = D(4) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(3) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(2) THEN Q <= 3 ; ELSE Q <= 2 ; END IF ; WHEN 3=> IF DIN = D(1) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(0) THEN Q <= 5 ; ELSE Q <= 2 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ; END PROCESS ;

PROCESS( Q ) BEGIN

IF Q = 5 THEN ss <= \ ELSE ss <= \ END IF ; END PROCESS ; END behav ;

5

本文来源:https://www.bwwdw.com/article/7kj2.html

Top