序列检测器设计

上传人:m**** 文档编号:229051079 上传时间:2023-08-22 格式:DOCX 页数:12 大小:170.79KB
收藏 版权申诉 举报 下载
序列检测器设计_第1页
第1页 / 共12页
序列检测器设计_第2页
第2页 / 共12页
序列检测器设计_第3页
第3页 / 共12页
资源描述:

《序列检测器设计》由会员分享,可在线阅读,更多相关《序列检测器设计(12页珍藏版)》请在装配图网上搜索。

1、序列检测器设计一、设计内容、设计要求(1)设计内容:根据自己学号的最后两位十进制数转成7位二进制数, 如序号是12,转成二进制数为 0001100。要求用时钟同步状态机的设计方式分别使用D触发器设计一个7位序列检测器, 说明序列可重复使用和不可重复使用在设计时的区别、用Mealy机设计和用Moore机设计 的区别,以及未用状态的处理方法。要求对四种设计方法(可重复使用+mealy机、可重复 使用+moore机、不可重复使用+mealy机、不可重复使用+moore机)中任选两种进行设计, 并使用最小风险法设计(有能力者四种方法均可以尝试)。(时钟输入可选1KHZ-50MHZ)。(2)设计要求:

2、给出设计过程,包括状态图或状态表、状态分配、卡诺图化简得到的表达式,然后利用仿真软件设计电路原理图或HDL代码,利用波形仿真并给出仿真结果。二、设计分析(对设计问题进行分析,提出解决方案,描述设计细节, 给出原理说明和 verilog 语言程序及根据语言综合出来的电路图,并 对性能和潜在问题进行说明。)1、序列可重复使用和不可重复使用在设计时的区别:若设计的是0001100序列检测器,若序列可重复使用,当检测到0001100时,该序列 最后的两个 0 在下面的检测中还可以使用,若序列不可重复使用,当检测到0001100 时, 该序列的所有字都不能在下面的检测中使用。2、用Mealy机设计和用M

3、oore机设计的区别:Mealy机的输出和当前状态、输入都有关,Moore机的输出只和当前状态有关。两种方 式在设计时状态数量不同,输出方程不同。3、未用状态的处理方法:当有未用状态时,有最小冒险法和最小成本法处理未用状态。最小冒险法是将未用状态转为“安全”状态,如初始状态;最小成本法是将所有未用状态的下一状态作为无关项。4、序列检测器的设计:我的学号是2017010904006,序号06,转为二进制为0000110。下面分别用四种设计方 法设计序列检测器。(1)可重复使用+mealy机。根据要检测的序列,先画出状态转移图,序列检测器状态转移图如下:当前状态输入AS Q2 Q1 Q001STA

4、 OOO001/0000/0A0 001010/0000/0A00 010011/0000/0A000 011100/0000/0A0000 100100/0101/0A00001 101001/0110/0A000011 110001/1000/0S*/Q面用卡诺图找出状态转移方程和输出方程:A=QflA=l/OrAoocgA 二 1A”、A=W-A=lflO |/A=a.,iA=W/A=DA)由图可以列出,该状态机的状态转移/输出表:QI*Q2*02 QI*00011110M00001000E11000100 p0 Q2Q10001111J00000010(juu 11100010Id00

5、0Q2Q1QoA、DO1)111100011ui10010009.110001000u Q2Q1 曲、000111J0000L001D000110000100000由图得到表达式:Q=Q2Q1Q0A;Q0*=Q2Q1Q0A+Q2Q1Q0+Q2Q1A;Q1*=Q2Q1Q0A+Q2Q1Q0A+Q2Q1Q0A;Q2*=Q2Q1Q0+Q2Q1A+Q2Q1Q0A;下面用软件进行综合与仿真:Verilog 代码如下:module xuliejiance(clk,q,a);input a; input clk;output q;reg q;parameter zero=0,one=1,two=2,three

6、=3,four=4,five=5,six=6; reg 2:0 pr_state,nx_state;always(posedge clk) pr_state=nx_state;always(a,pr_state) case(pr_state)zero:if(a=1) begin nx_state=zero;q=0;endelse begin nx_state=one;q=0;endone:if(a=1) begin nx_state=zero;q=0;endelse begin nx_state=two;q=0;end two:if(a=1) begin nx_state=zero;q=0;e

7、ndelse begin nx_state=three;q=0;end three:if(a=1) begin nx_state=zero;q=0;endelse begin nx_state=four;q=0;end four:if(a=1) begin nx_state=five;q=0;endelse begin nx_state=four;q=0;end five:if(a=1) begin nx_state=six;q=0;endelse begin nx_state=one;q=0;endsix:if(a=1) begin nx_state=zero;q=0;endelse beg

8、in nx_state=one;q=1;end default:beginq=0;nx_state=zero;endendcaseEndmodule激励程序 Textbench 为:timescale 1 ps/ 1 psmodule moor_vlg_tst();/ constants/ general purpose registersreg eachvec;/ test vector input registersreg a;reg clk;/ wireswire q;/ assign statements (if any)moor i1 (/ port map - connection

9、 between master ports and signals/registers .a(a),.clk(clk),.q(q);initialbeginclk=1b0;a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=1;#4 a=1;#4 a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=1;#4 a=1;#4 a=0;#4 a=1;#200 $stop;endalways/ optional sensitivity list/ (event1 or event2 or eventn)begin#2 clk=clk;endEndmodule由于这种方式写

10、代码是不能综合处电路的,因此我根据状态转移方程,写了下面的代码 module xuliejiance(clk,q,a);input a;input clk;output q;reg q=1b0;reg b=1b0;reg c=1b0;reg d=1b0;reg bn=1b0;reg cn=1b0;reg dn=1b0;always(posedge clk)begin b=bn;c=cn;d=dn; endalways(a,b,c,d)begin dn=(b)&c&(b)&(a)|(b&(c)&(d)|(b&(c)&a); cn=(b)&(c)&d&(a)|(b)&c&(d)&(a)|(b&(c

11、)&d&a); bn=(b&(c)&(d)|(b&(c)&a)|(b)&c&d&(a); q=b&c&(d)&(a);endEndmodule综合的结果如下:(2)可重复使用+moore机。根据要检测的序列,先画出状态转移图,序列检测器状态转移图如下根据状态转移图,画出状态转移表,并给状态赋值:当前状态输入A/下一状态输出S Q2 Q1 Q001QSTA 0000010000A0 0010100000A00 0100110000A000 0111000000A0000 1001001010A00001 1010011100A000011 1101110000A0000110 111010000

12、1面用卡诺图找出状态转移方程和输出方程:)0000n00000a00QD0Q0D0J01 h000000Q0000qQ0a10由卡诺图得到状态转移方程和输出方程:Q2*=Q2Q0A+Q2Q1Q0+Q2Q1A+Q2Q1Q0A;Q1*=Q1Q0A+Q2Q1Q0A+Q2Q1Q0A+Q2Q1Q0A;Q0*=Q2Q0A+Q1Q0A+Q2Q1Q0A+Q2Q1Q0A;Q=Q2Q1Q0;下面用软件进行综合与仿真:Verilog 代码如下: module moor(clk,q,a);input a;input clk;output q;reg q;parameter zero=0,one=1,two=2,thr

13、ee=3,four=4,five=5,six=6,seven=7; reg 2:0 pr_state,nx_state;always(posedge clk) pr_state=nx_state;always(a,pr_state) case(pr_state) zero:begin q=0;if(a=1) nx_state=zero;else nx_state=one;endone:beginq=0;if(a=1) nx_state=zero;else nx_state=two;endtwo:beginq=0;if(a=1) nx_state=zero;else nx_state=three

14、;endthree:beginq=0;if(a=1) nx_state=zero;else nx_state=four;endfour:beginq=0;if(a=1) nx_state=five;else nx_state=four;endfive:beginq=0;if(a=1) nx_state=six;else nx_state=one;endsix:beginq=0;if(a=1) nx_state=zero;else nx_state=seven;endseven:beginq=1;if(a=1) nx_state=zero;else nx_state=two;enddefault

15、:begin q=0;nx_state=zero;endendcaseEndmodule由于这种方式写代码是不能综合处电路的,因此我根据状态转移方程,写了下面的代码 module moor(clk,q,a);input a;input clk;output q;reg q=1b0;reg b=1b0;reg c=1b0;reg d=1b0;reg bn=1b0;reg cn=1b0;reg dn=1b0;always(posedge clk)beginb=bn;c=cn;d=dn;endalways(a,b,c,d)beginbn=(b&(d)&(a)|(b&(c)&(d)|(b&(c)&a)

16、|(b)&c&d&(a); cn=(c&(d)&(a)|(b)&(c)&d&(a)|(b&c&d&(a)|(b&(c)&d&a); dn=(b)&(d)&(a)|(c&(d)&(a)|(b&(c)&(d)&a)|(b&(c)&d&(a); q=b&c&d;endEndmodule激励程序 Textbench 为:timescale 1 ps/ 1 psmodule moor_vlg_tst();/ constants/ general purpose registersreg eachvec;/ test vector input registersreg a;reg clk;/ wiresw

17、ire q;/ assign statements (if any)moor i1 (/ port map - connection between master ports and signals/registers.a(a),.clk(clk),.q(q);initialbeginclk=1b0;a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=1;#4 a=1;#4 a=0;#4 a=0;#4 a=0;#4 a=0;#4 a=1;#4 a=1;#4 a=0;#4 a=1;#200 $stop; end always/ optional sensitivity li

18、st/ (event1 or event2 or eventn)begin#2 clk=clk; end Endmodule综合出的电路如下:三、设计结果(给出功能仿真或定时仿真的输出波形,并对结果进行解释,以说明是否符合设计要求。)1、可重复使用+mealy机。入为0检测到0000110,输出立即为为1,输出是和输入相关的,确实是mealy机;从第 八个周期开始到第十四个周期,检测到0000110,输出为 1,可以看到重复使用了第一个序列最后的 0,所以设计是符合设计要求的。2、可重复使用+moore机从图中可以看出,在前七个周期,没检测到0000110,输出为 0,在第八个周期,输入为 0,检测到 0000110,状态机的下一个状态是有效状态,但当前不是,输出为 0,在下一urrumr个时钟,状态是有效的,输出为1,因此输出是和输入无关的,只和状态有关,确实是moor机;从第八个周期开始到第十四个周期,检测到0000110,输出为1,可以看到重复使用了 第一个序列最后的 0,所以设计是符合设计要求的。四、设计的收获体会这次课程设计,给我的感觉是有难度,但很有趣,这次课程设计后,感觉自己对时序部 分的理解更加深入了,在设计的过程中,我锻炼实践能力,对verilog的使用更加熟悉了, 感觉收获了很多。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!