第五讲-设计进阶.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
版权所有:北京航空航天大学 Verilog HDL 语法和设计进阶 武 斌 VerilogHDL的抽象级别 可综合模块: Verilog HDL设计的可用硬线逻辑实现的实模块,可通过综合工具,自动地转换为门级逻辑电路的 Verilog HDL 模块。算法级部分可综合,寄存器传输级和门级 完全可综合。 寄存器传输级Verilog HDL模块: 也可称为RTL (Verilog) HDL模块。它是符合特定标准和风格的描述状态转移和变化的 Verilog HDL模块。能用综合器把它转换为门级逻辑。 UDP-用户定义的源语元件 在 Verilog 结构建模时,可以使用: 二十多个门级源语元件(primitives)。 用户定义的源语元件 UDP 不支持综合,即不能通过综合把它转变为门级结构逻辑。 primitive multiplexer (o, a, b, s); output o; input s, a, b; table // a b s : o 0 ? 1 : 0; 1 ? 1 : 1; ? 0 0 : 0; ? 1 0 : 1; 0 0 x : 0; 1 1 x : 1; endtable endprimitive 结构级(门级) module muxtwo (out, a, b, sel); input a,b,sel; output out; not u1(nsl,sel); and u2(sela, a, nsl); and u3(selb,b,sel); or u4(out ,sela, selb); endmodule RTL级---算法级 module muxtwo (out, a, b, sl); input a,b,sl; output out; reg out; always @(sl or a or b) if (!sl) out = a; //RTL else out = b; /*always @(sl or a or b) if (!sl) out = a+b;//算法 else out = a*b;*/ endmodule 设计示例----实例调用 设计示例一 设计示例二 设计示例二 `include “ flop.v ” module hardreg(d,clk,clrb,q); input clk,clrb; input[3:0] d; output[3:0] q; flop f1(d[0],clk,clrb,q[0],), f2(d[1],clk,clrb,q[1],), f3(d[2],clk,clrb,q[2],), f4(d[3],clk,clrb,q[3],); endmodule 逻辑功能表示 共有三种方法可以生成逻辑电路: 用assign 语句: assign sum = a+b ; 用 always 块: always @ (posedge clk) begin sum<=a+b; end 用 元件的实例调用: and2 and_inst ( q, a, b); 复杂逻辑基本组成 任何组合电路都可表示为其所有输入信号的最小项的和或者最大项的积的形式。 时序电路包含寄存器,通过其寄存器反馈信号和输入信号的组合逻辑关系确定下一时钟周期的输出信号。 时序逻辑设计 组合计算 寄存器、锁存器 计数器、状态机 时序逻辑设计方法 移位寄存器实例: reg [7:0] data; always@(posedge clk) data<=data<<1; or: data<=data>>1; 左循环: data<=data<<1; //data[7:1]<=data[6:0] data[0]<=data[7] ; 右循环:??? 移位寄存器案例 计数器 模计数器,2n (模可控)任意进制计数器 置数法,复位法 Moore型,mealy型 parameter 的使用 同步计数器设计案例 合写为: always @(posedge clk) if(!rst) begin

您可能关注的文档

文档评论(0)

岁月如歌777 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档