第4讲Verilog设计初步重点.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * 第4讲 Verilog设计初步 主要内容 一、Verilog简介 二、主要功能 三、Verilog设计举例 四、Verilog模块的结构 五、Verilog语言要素 Verilog HDL是一种硬件描述语言,可以在算法级、门级到开关级的多种抽象设计层次上对数字系统建模。 Verilog HDL可以描述设计的行为特性、数据流特性、结构组成以及包含响应监控和设计验证方面的时延和波形产生机制,用这种语言编写的模型能够使用Verilog HDL仿真器进行验证。 Verilog HDL从C语言中继承了多种操作符和结构,所以从形式上看Verilog HDL和C语言有很多相似之处。 一、 Verilog简介 一、 Verilog简介 Verilog语言是1983年由GDA(Gateway Design Automation)公司的Phil Moorby首创的,之后Moorby又设计了Verilog-XL仿真器,Verilog-XL仿真器大获成功,也使得Verilog语言得到推广使用。 1989年,Cadence收购了GDA 1990年,Cadence公开发表了Verilog HDL,并成立了OVI组织(Open Verilog International)专门负责Verilog HDL的发展。 Verilog于1995年成为IEEE标准,称为IEEE Standard 1364-1995(Verilog-1995) IEEE“1364-2001”标准(Verilog-2001)也获得了通过,多数综合器、仿真器都已经支持Verilog-2001标准 Verilog HDL的主要特点和功能有: ●描述基本逻辑门,如and、or和nand等基本逻辑门都内置在语言中,可以直接调用。 ●描述基本开关模型,如nmos 、pmos和cmos等基本开关都可以直接调用。 ●允许用户定义基元(UDP),这种方式灵活而有效,用户定义的基元既可以是组合逻辑也可以是时序逻辑。 二、主要功能 二、主要功能 ●可以指定设计中的端口到端口的时延、路径时延和设计的时序检查。 ●可采用多种方式进行建模。这些方式包括顺序行为描述方式——使用过程化结构建模,数据流行为方式——使用连续赋值语句方式建模,结构化方式——使用门和模块实例语句描述建模。 ● Verilog HDL中有两类数据类型,线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 二、主要功能 ●能够描述层次设计,可使用模块实例结构描述任何层次。 ●设计的规模可以是任意的,语言不对设计的规模(大小)施加任何限制。 ● Verilog HDL是IEEE标准而不再是某些公司的专有语言,语言标准都是公开的。人和机器都可阅读Verilog HDL 语言,因此它可作为EDA的工具和设计者之间的交互语言。 三、 Verilog设计举例 【例1】4位全加器 module add4_bin(cout,sum,ina,inb,cin); output[3:0] sum; output cout; input[3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule 【例2】4位计数器 module count4(out,reset,clk); output[3:0] out; input reset,clk; reg[3:0] out; always @(posedge clk) begin if(reset) out=0; //同步复位 else out=out+1; //计数 end endmodule 仿真 仿真 Verilog程序的特点 (1)Verilog程序是由模块构成的。每个模块的内容都嵌在module和endmodule两个关键字之间;每个模块实现特定的功能;模块是可以进行层次嵌套的。 (2)每个模块首先要进行端口定义,并说明输入和输出口(input、output或inout),然后对模块的功能进行逻辑描述。 (3)Verilog程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。 (4)除了endmodule等少数语句外,每个语句的最后必须有分号。 (5)可以用 /*……*/ 和 //…… 对Verilog程序作注释。 module AOI (A,B,C,D,F); //模块名为AOI input A,B,C,D; //模块的输入端口为A,B,C,D output F; //模块的输出端口为F wire A,B,C,D,F; //定义信号的数据类型 assign F= ~((AB)|(~(CD))); //逻辑功

文档评论(0)

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

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

1亿VIP精品文档

相关文档