- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
verilog复习,verilog,verilog教程,veriloghdl,systemverilog,verilogcase,verilogparameter,verilogassign,veriloggenerate,verilogalways
数字集成电路设计 崔小欣 TelEmail:cuixx@pku.edu.cn 北京大学微电子研究院 复 习 什么是硬件描述语言HDL 具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言 这种特殊结构能够: 描述电路的连接 描述电路的功能 在不同抽象级上描述电路 描述电路的时序 表达具有并行性 抽象级(Levels of Abstraction) Verilog既是一种行为描述的语言也是一种结构描述语言。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别包括: 行为级(系统说明) -设计文档/算法描述 RTL/功能级 -Verilog 门级/结构级 -Verilog 版图/物理级 -几何图形 行为综合 综合前仿真 逻辑综合 综合后仿真 版图 抽象级(Levels of Abstraction) 各级描述风格之间的Trade-offs RTL/Functional - Verilog Spec - algorithm Gate/Structural - Verilog Layout/Physical - geometric shapes Faster simulation entry Slower simulation entry Less details More details 输入输出信号及数据类型 net(连线): 表示器件之间的物理连接 register(寄存器):表示抽象存储元件 parameter(参数): 运行时的常数(run-time constants) 三种端口: 三类(class)数据类型: input output inout 输入端口可以由net/register驱动,但输入端口只能是net 输出端口可以是net/register类型,输出端口只能驱动net in1 in2 O A B Y 双向端口输入/输出只能是net类型 DUT TOP 选择正确的数据类型: 功能描述 持续赋值 - assign 过程块 - initial - always module DFF (q, qb, d, clk, clr); output q, qb; input d, // input data clk, /*input clock */ clr; reg q; wire qb, d, clk, clr; assign qb = !q; always @(posedge clk or negedge clr) if(!clr) q = 0; else q = d; endmodule 块语句 块语句用来将多个语句组织在一起,使得他们在语法上如同一个语句 块语句分为两类: 顺序块:语句置于关键字begin和end之间,块中的语句以顺序方式执行 并行块:关键字fork和join之间的是并行块语句,块中的语句并行执行 Fork和join语句常用于test bench描述,这是因为可以一起给出矢量及其绝对时间,而不必描述所有先前事件的时间 过程块 ( procedural block ) 所有过程在时间0执行一次 过程块之间 assign语句之间 并行执行 过程块与assign语句 过程语句有两种: initial :只执行一次 always :循环执行 module DFF (q, qb, d, clk, clr); output q, qb; input d, // input data clk, /*input clock */ clr; reg q; wire qb, d, clk, clr; assign qb = !q; always (时序控制) begin/fork 过程赋值语句; 系统任务和函数; 高级描述语句 if语句; case语句; 循环语句; end/join endmodule 持续赋值与过程赋值 持续赋值: 描述的是组合逻辑 在过程块外部使用 被赋值对象是net型(wire) 过程赋值: 可以描述组合逻辑,也可以描述时序逻辑 在过程块中的赋值 被赋值对象是寄存器类型(reg) module muxtwo (out, a, b, s1 ); input a, b, s1;
文档评论(0)