欢迎来到天天文库
浏览记录
ID:6442708
大小:132.94 KB
页数:11页
时间:2018-01-14
《实验三 序列信号检测器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三序列信号检测器的设计一、实验目的:1、理解序列信号检测器的工作原理;2、掌握原理图和文本输入的混合设计输入方法;3、理解状态划分;4、掌握状态机程序的编写方法;二、实验原理:序列检测器是时序数字电路中非常常见的设计之一。它的主要功能是:将一个指定的序列从数字码流中识别出来。接下来的设计就是针对“011”这个序列的检测器。设input为数字码流输入,output为检出标记输出,高电平表示“发现指定序列”,低电平表示“没有发现指定的序列”。设输入的码流为“001101101111011111...”,在时钟
2、2~4中,码流input里出现指定序列“011”,对应输出output在第4个时钟变为高电平“1”,表示发现指定"011”,以此类推。序列发生器模块采用的是M(n=4)序列发生器,详细可以参考《EDA技术与应用》一书的4.4团队协作及逻辑锁定。三、实验内容(1)最终的顶层设计原理图如下:左侧的四个D触发器组成的电路为M序列信号发生器模块,它可以产生15位随机的二进制码流。发生器产生的二进制码流每隔15个时钟周期重复出现一次。详细的可以在最终的时序仿真图中看出来。右侧的get_str模块为检测模块,给予状态机的
3、结构编写的,具体如下:libraryieee;useieee.std_logic_1164.all;entityget_serisport(clk:instd_logic;input:instd_logic;reset:instd_logic;serout:outstd_logic_vector(1downto0);output:outstd_logic);endentity;architecturertlofget_seris--Buildanenumeratedtypeforthestatemachine
4、typestate_typeis(s0,s1,s2,s3);--Registertoholdthecurrentstatesignalstate:state_type;beginserout<=('0'&input);--Logictoadvancetothenextstateprocess(clk,reset)beginifreset='1'thenstate<=s0;elsif(rising_edge(clk))thencasestateiswhens0=>ifinput='0'thenstate<=s1
5、;elsestate<=s0;endif;whens1=>ifinput='1'thenstate<=s2;elsestate<=s1;endif;whens2=>ifinput='1'thenstate<=s3;elsestate<=s1;endif;whens3=>ifinput='1'thenstate<=s0;elsestate<=s1;endif;endcase;endif;endprocess;--Outputdependssolelyonthecurrentstateprocess(state)
6、begincasestateiswhens0=>output<='0';whens1=>output<='0';whens2=>output<='0';whens3=>output<='1';endcase;endprocess;endrtl;(2)理解状态机请根据上图对照get_str程序理解检测“011”序列的基本编程思路。图中的s0为复位状态,s1为检测到首个‘0’状态,s2为检测到“01”状态,s3为检测到一个“011”序列的状态。(3)完成(1)所示的顶层原理图并进行全编译。最终的设计使用的资源为:
7、最大运行频率为:(4)设计testbench文件并进行时序仿真。Testbench文件如下:LIBRARYaltera;LIBRARYcycloneiii;LIBRARYieee;USEaltera.altera_primitives_components.all;USEcycloneiii.cycloneiii_components.all;USEieee.std_logic_1164.all;ENTITYste_tbISEND;ARCHITECTUREste_tb_archOFste_tbISSIGNAL
8、output:STD_LOGIC;SIGNALclk:STD_LOGIC:='0';SIGNALreset:STD_LOGIC:='0';COMPONENTstePORT(output:outSTD_LOGIC;clk:inSTD_LOGIC;reset:inSTD_LOGIC);ENDCOMPONENT;BEGINDUT:stePORTMAP(output=>output,clk=>clk,res
此文档下载收益归作者所有