第3章Verilog硬件描述语言.ppt

  1. 1、本文档共155页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章Verilog硬件描述语言

带同步复位的触发器 module sync_set (d, clk, rst, q); input d, clk, rst; output q; reg q; always @(posedge clk) begin if (rst== 0) q = 0; else q = d; end endmodule 同步时序逻辑(2) ?通过控制电平信号采样保存数据可以形成锁存器latch。 ?锁存器 –不带置位与复位 –带置位 –带复位 –带置位与复位 带异步置位与复位逻辑的锁存器 module latch(q,enable,set,clr,d); input enable,d,set,clr; output q; reg q; always @(enable or set or clr or d) begin if (set) q = 1; else if (clr) q = 0; else if (enable) q = d; end endmodule 阻塞与非阻塞的赋值 ?非阻塞赋值与硬件的对应关系比阻塞赋值明确。 ?时序逻辑中的非阻塞赋值总是实现为硬件寄存器,阻塞赋值的行为要复杂一些。 ?对组合逻辑进行综合时阻塞赋值与非阻塞赋值可以产生相同的结果,但可能与RTL的设计有不同的仿真结果。 ?对时序逻辑,阻塞赋值与非阻塞赋值的综合可能会产生不同的结果。 ?一般时序块多采用非阻塞赋值,组合块多采用阻塞赋值。 时序逻辑中的阻塞赋值 ?如果阻塞赋值的赋值操作与读操作在同一个状态中完成,该阻塞赋值将通过组合逻辑实现。 ?如果阻塞赋值的赋值操作与读操作在不同状态中完成,该阻塞赋值将通过硬件寄存器实现。 阻塞与非阻塞的赋值-组合逻辑 regz1; regy1; always @(a1 or b1 or c1) begin z1 = a1 b1; y1 = z1 | c1; end regz2; regy2; always @(a2 or b2 or c2) begin z2 = a2 b2; y2 = z2 | c2; end 对y2来说可能因为延迟的关系与RTL仿真结果有差别。 阻塞与非阻塞的赋值-时序逻辑 regz3; regy3; always @(posedge clk) begin z3 = a3 b3; y3 = z3 | c3; end // 产生一个触发器,z3的逻辑被优化 regz4; regy4; always @(posedge clk) begin z4 = a4 b4; y4 = z4 | c4; end // 产生两个触发器 有限状态机的描述 ?有限状态机是通过现态、次态、输入和输出之间的相互作用构成的。 ?有限状态机可以分成两类: –Mealy型:输出与现态和输入相关。 –Moore型:输出只与现态相关,和输入无关。 ?有限状态机需要有复位处理。 ?有限状态机的状态转换应当在同一个时钟信号的同一个边沿发生。 ?有限状态机可以有两种描述方式: –隐式描述:多数逻辑综合器不支持。 –显式描述:明确说明状态寄存器和状态赋值。 有限状态机的隐式描述 ?不需要指定状态寄存器,当数据在一个周期里写而在另一个周期里读时形成寄存器。 ?能高效地进行仿真。 ?只对线性状态转换处理得比较好。 ?多数综合器不支持。 ?不容易处理缺省状态。 有限状态机的显式描述 ?结构化程度更好。 ?可以比较容易地控制缺省状态。 ?可以处理复杂的状态转换。 ?所有综合器都支持。 ?可以有如下几种方式: –一个procedure:在一个procedure中处理所有的状态转换、次态产生和输出逻辑。 –两个procedure:将处理状态转换的时序逻辑和处理次态与输出的组合逻辑分开。 –三个procedure:一个处理状态转换的时序逻辑,一个处理次态的组合逻辑,一个处理输出的组合逻辑。 ?通常的描述方式如下: –指定保存状态的寄存器。 –在一个过程块中使用case语句描述各个状态的次态和输出。 –case分支内部的条

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档