教程逻辑部分2004_第1页
教程逻辑部分2004_第2页
教程逻辑部分2004_第3页
教程逻辑部分2004_第4页
教程逻辑部分2004_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、- 。in 7:0开关out7:0tt31 0215 3262 88 0215 32 00 00in7controlswitchout7clockdq7clockin0controlswitchout0dq0out7out0module regena (clock,ena,reset,r,q);parameter n=8;input n-1:0 r;input clock, ena reset;output n-1:0 q; always (posedge clock or negedge reset) if (!reset) q=0; else if (ena) q=r;endmodulee

2、narclockd q qresetr1enawclockd q qresetq1d qq0r0load.outbuf7outbuf 7:0开bus7:0tt31 0215 3262 88 0215 32 zz zzlinkbusswitch关outbuf7 seldatasel0data0sel1data1data outputaddressam-1a1a0am-2writereaddata inputsel0sel1sel2m-2 sel2m-1地址译码器qdqdqdqdqdqdqdqdqdqdqdqdclock开关s1 开关s2组合逻辑组合逻辑寄存器1寄存器2寄存器3clock开关s5

3、寄存器cqd开关s6开关s3 寄存器bqd开关s4开关s1 寄存器aqd开关s2组合逻辑输出控制开关sn in 7:0out 15:0in 7:0 8 d 31 8 d 202 16 d 93 16 d 606延时10nssn开关out15:0ttt全局时钟网络触发器缓冲器 触发器1触发器n图1 全局时钟网示意图 图2 平衡树结构示意图 由于组合逻辑和布线的延迟引起由于组合逻辑和布线的延迟引起abttcclockabc 组合逻辑和布线的延迟在组合逻辑中的叠加组合逻辑和布线的延迟在组合逻辑中的叠加ba#2#3#4cedba#2#3#4ced#1#1clockclock 10nss2开关s1ttt

4、sns3ttts4同步有限状态机同步有限状态机ena_2ena_3ena_1组合逻辑 1寄存器组组合逻辑 2寄存器组组合逻辑 3寄存器组组合逻辑 n寄存器组input_1 input_2input_n图1 . 时钟同步的状态机结构 (mealy 状态机)下一状态下一状态的逻辑的逻辑 f f输出逻辑输出逻辑 g g状态状态寄存器寄存器 clk 输入下一状下一状态的逻态的逻辑辑 f f输出逻辑输出逻辑 g g状态状态寄存器寄存器图2. 时钟同步的状态机结构 (moor状态机)图3 带流水线输出的mealy 状态机 输出输出逻辑逻辑 g g 状态转移图表示状态转移图表示rtlrtl级可综合的级可综合

5、的 verilog verilog 模块表示模块表示有限状态机的图形表示有限状态机的图形表示 图形表示:状态、转移、条件和逻辑开关图形表示:状态、转移、条件和逻辑开关图3.4 状态转移图idle start stop clear a/k1=0 !a a/k2=1 !reset /k2=0 k1=0!reset /k2=0 k1=0 (!reset |!a )/ k2=0 k1=1!reset /k2=0 k1=0表示方法之一表示方法之一module fsmmodule fsm (clock, reset, a, k2, k1); (clock, reset, a, k2, k1);input

6、clock, reset, a; input clock, reset, a; /定义时钟、复位和输入信号定义时钟、复位和输入信号output k2, k1; output k2, k1; /定义输出控制信号的端口定义输出控制信号的端口regreg k2, k1; k2, k1; /定义输出控制信号的寄存器定义输出控制信号的寄存器regreg 1:0 state ; 1:0 state ; /定义状态寄存器定义状态寄存器parameter idle = 2parameter idle = 2b00, start = 2b00, start = 2b01, b01, stop = 2 stop

7、= 2b10, clear = 2b10, clear = 2b11;b11;/定义状态变量参数值定义状态变量参数值 always (posedgealways (posedge clock) clock) if (!reset) if (!reset) begin begin /定义复位后的初始状态和输出值定义复位后的初始状态和输出值 state = idle; k2=0; k1=0; state = idle; k2=0; k1=0; end end表示方法之一(续)表示方法之一(续)elseelse case (state) case (state) idle: begin idle:

8、begin if (a) begin if (a) begin state = start; state = start; k1=0; k1=0; end end else state = idle; else state = idle; end end start: begin start: begin if (!a) state = stop; if (!a) state = stop; else state = start; else state = start; end end表示方法之一(续)表示方法之一(续) stop: begin stop: begin if (a) begin

9、 if (a) begin state = clear; state = clear; k2= 1; k2= 1; end end else state = stop; else state = stop; end end clear: begin clear: begin if (!a) begin if (!a) begin state = idle; state = idle; k2=0; k1=1; k2=0; k1=1; end end else state = clear; else state = clear; end end endcase endcaseendmodule e

10、ndmodule 表示方法之二表示方法之二我们还可以用另一个我们还可以用另一个 verilogverilog hdl hdl模型来表示同一个有限状态,模型来表示同一个有限状态,见下例。(用可综合的见下例。(用可综合的verilogverilog模块设计用独热码表示状态的状态机)模块设计用独热码表示状态的状态机) module fsmmodule fsm (clock, reset, a, k2, k1); (clock, reset, a, k2, k1);input clock, reset, a;input clock, reset, a;output k2, k1;output k2,

11、k1;regreg k2, k1; k2, k1;regreg 3:0 state ; 3:0 state ;parameter idle = 4parameter idle = 4b1000, b1000, start = 4 start = 4b0100, b0100, stop = 4 stop = 4b0010, b0010, clear = 4 clear = 4b0001;b0001; 表示方法之二(续)表示方法之二(续) always (posedgealways (posedge clock) clock) if (!reset) if (!reset) begin begin state = idle; k2=0; k1=0; state = idle; k2=0; k1=0; end end else else case (state) case (state) idle: if (a) begin idle: if (a)

温馨提示

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

评论

0/150

提交评论