- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA序列发生器和检测器设计
设计题目:序列信号发生器与检测器设计
一、设计目的:用状态机实现序列信号发生器与序列检测器的设计,了解一般状态机的设计与应用。
二、设计内容与要求:
(1) 设计原理:序列检测器的工作原理参考教材(第四版)7.2.2节有关介绍。
(2) 设计“1011100110010110”序列发生器;
(3) 设计检测器,若检查到串行序列“10110”,则输出’1’,否则输出输出’0’;并对其进行仿真;
(4) 要求采用层次设计,将序列发生器和检测器例化为底层元件处理;
(5) 要求有详细的设计思路(设计原理图),源程序,时序波形仿真图,生成状态跳转图以及顶层设计文件的RTL级电路图。
三、程序设计
(一)序列发生器
(1)序列发生器程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;--IEEE库使用说明
ENTITY xhfsq IS
PORT( CLK,RST:IN STD_LOGIC; --CLK为时钟信号,RST为复位信号
cout:OUT STD_LOGIC); --cout输出端口
END xhfsq;
ARCHITECTURE one OF xhfsq IS
TYPE STATE IS(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);--16个状态
SIGNAL ST:STATE;
SIGNAL C:STD_LOGIC;--C为一个给输出端口赋值的信号
BEGIN
PROCESS(CLK,RST)
BEGIN
IF(RST=1)THEN ST=s0;C=0; --复位
ELSIF(CLKEVENT AND CLK=1)THEN --时钟信号发生事件,并为上升沿
CASE ST IS ---通过判断ST的值,进而判断应输出的值
WHEN s0=C=1;ST=s1;
WHEN s1=C=0;ST=s2;
WHEN s2=C=1;ST=s3;
WHEN s3=C=1;ST=s4;
WHEN s4=C=1;ST=s5;
WHEN s5=C=0;ST=s6;
WHEN s6=C=0;ST=s7;
WHEN s7=C=1;ST=s8;
WHEN s8=C=1;ST=s9;
WHEN s9=C=0;ST=s10;
WHEN s10=C=0;ST=s11;
WHEN s11=C=1;ST=s12;
WHEN s12=C=0;ST=s13;
WHEN s13=C=1;ST=s14;
WHEN s14=C=1;ST=s15;
WHEN s15=C=0;ST=s0;C=0;
END CASE;
END IF;
END PROCESS;
cout=C; --将c的值赋给cout
END one;
(2)RLT图:
(3)状态跳转图
(4)时序波形仿真图:
(5)封装成可调用元件为:
(二)检测器
(1)检测器程序
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY jcq IS
PORT(DIN,CLK,CLR : IN STD_LOGIC; --串行输入数据位/工作时钟/清零信号
zout: OUT STD_LOGIC); --检测结果输出
end jcq;
ARCHITECTURE one OF jcq IS
TYPE STATES IS (s0,s1,s2,s3,s4,s5); ---将状态符号化,共有六个状态(s0,s1,s2,s3,s4,s5);
SIGNAL STA: STATES; --状态变量是STA,类型为STATES
SIGNAL S : STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
S =10110; --用于作为比较的正确序列
PROCESS(CLK,CLR)
BEGIN
IF CLR = 1 THEN STA = s0; --CLR清零
ELSIF CLKEVENT AND CLK=1 THEN --上升沿到来
CASE STA IS
文档评论(0)