数字系统设计:第十章 设计_第1页
数字系统设计:第十章 设计_第2页
数字系统设计:第十章 设计_第3页
数字系统设计:第十章 设计_第4页
数字系统设计:第十章 设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章设计主要内容写代码前先设计序列检测器设计蛇形灯设计ExampleCountDownTimerDesignBeforeCodingStepsinDesign1.Workoutthehardwarealgorithmandoverallstrategy2.Identifyandnamealltheregisters(flip-flops)Determinesystemtimingwhiledoingthis3.Identifythebehaviorofeach“cloud”ofcombinationallogic4.TRANSLATEdesigntoRTL5.VerifyDesign6.SynthesizeDesign二.序列检测器序列检测器

序列检测器的逻辑功能:序列检测就是将一个指定的序列从数字码流中识别出来。设计一个“101”序列的检测器。设X为数字码流输入,Z为检出标记输出,高电平表示“发现指定序列”,低电平表示“没有发现指定序列”。时钟12345678910111213141516171819X101010010000100101…Z001010000000000001…序列检测器的逻辑功能序列检测器根据以上逻辑功能描述,可以得出状态转换图。A~C表示3位序列“101”按顺序正确地出现在码流中,只要发现“101”码会立即输出一个高电位的电平。IDLE表示初始空闲状态。序列检测器moduleseqdet(x,z,clk,rst);inputx,clk,rst;outputz;reg[1:0]state;//状态寄存器wirez;parameterIDLE=2’d0,A=2’d1,B=2’d2,C=2’d3;assignz=(state==B&&x==1)?1:0;

//状态为B时又接收了1,表明101收到应有输出Z为高Verilog描述:序列检测器always@(posedgeclkornegedgerst)if(!rst)beginstate<=IDLE;//reset为低电平,回到IDLE状态endelsecasex(state)IDLE:if(x==1)state<=A;//用状态变量记住高电平(x==1)来过elsestate<=IDLE;//输入的是低电平,状态保留不变A:if(x==0)state<=B;//用状态变量记住第二位低电平(x==0)来过elsestate<=A;//输入的是高电平,回到A状态

测试代码data=20‘b1010_1001_0000_1001_0100;//码流数据#(`halfperiod*1000)$stop;//运行500个时钟周期停止仿真endalways#(`halfperiod)clk=~clk;//时钟信号always@(posedgeclk)#2data={data[18:0],data[19]};//移位输出码流seqdetm(.x(x),.z(z),.cl

温馨提示

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

评论

0/150

提交评论