电子系统设计与仿真-第6节-Verilog_HDL精选.ppt

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

1 电子系统设计与仿真-第6节- Verilog HDL 电信学院:雷 鸣 2 引言 一、什么是Verilog HDL 二、Verilog HDL的发展历史 三、不同层次的Verilog HDL抽象 四、Verilog HDL的特点 内容概要 3 引言 一、什么是Verilog HDL Verilog HDL是一种用于数字逻辑电路设计的硬件描述语言(Hradware Description Language ),可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。 Verilog HDL 既是一种行为描述语言也是一种结构描述语言。 既可以用电路的功能描述,也可以用元器件及其之间的连接来建立Verilog HDL模型。 4 引言 二、Verilog HDL的发展历史 1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首创; 1989年,Cadence公司收购了GDA公司; 1990年, Cadence公司公开发表Verilog HDL; 1995年,IEEE制定并公开发表Verilog HDL1364-1995标准; 1999年,模拟和数字电路都适用的Verilog标准公开发表 5 引言 三、不同层次的Verilog HDL抽象 Verilog HDL模型可以是实际电路的不同级别的抽象。抽象级别可分为五级: 系统级(system level): 用高级语言结构实现的设计模块外部性能的模型; 算法级(algorithmic level): 用高级语言结构实现的设计算法模型; RTL级(register transfer level): 描述数据在寄存器之间流动和如何处理这些数据的模型; 门级(gate level): 描述逻辑门(如与门、非门、或门、与非门、三态门等)以及逻辑门之间连接的模型; 开关级(switch level): 描述器件中三极管和储存节点及其之间连接的模型。 6 引言 四、Verilog HDL的特点 语法结构上的主要特点: 形式化地表示电路的行为和结构; 借用C语言的结构和语句; 可在多个层次上对所设计的系统加以描述,语言对设计规模不加任何限制; 具有混合建模能力:一个设计中的各子模块可用不同级别的抽象模型来描述; 基本逻辑门、开关级结构模型均内置于语言中,可直接调用; 易创建用户定义原语(UDP,User Designed Primitive) 。 易学易用,功能强 与C语言非常相似! 7 Verilog HDL基本结构 一、简单的Verilog HDL例子 二、Verilog HDL模块的结构 三、逻辑功能定义 四、关键字 五、标识符 内容概要 8 Verilog HDL基本结构 一、简单的Verilog HDL例子 [例1] 8位全加器 module adder8 ( cout,sum,a,b,cin ); output cout; // 输出端口声明 output [7:0] sum; input [7:0] a,b; // 输入端口声明 input cin; assign {cout,sum}=a+b+cin; endmodule assign语句:无论右边表达式操作数何时发生变化,左边表达式都会重新计算,并且在指定的延迟后给左边表达式赋值。 端口定义 功能描述 模块名(文件名) 整个Verilog HDL程序嵌套在module和endmodule声明语句中。 // …… 表示注释部分,一般只占据一行。对编译不起作用! 单行注释符 9 Verilog HDL基本结构 [例2] 8位计数器 module counter8 ( out,cout,data,load, cin,clk ); output [7:0] out; output cout; input [7:0] data; input load, cin,clk ; reg[7:0] out; always @(posedge clk) begin if(load) out = data; // 同步预置数据 else out = out + 1 + cin; //

文档评论(0)

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

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

1亿VIP精品文档

相关文档