第4章Verilog设计初步_第1页
第4章Verilog设计初步_第2页
第4章Verilog设计初步_第3页
第4章Verilog设计初步_第4页
第4章Verilog设计初步_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 主要内容主要内容4.1 Verilog简介简介4.2 Verilog模块的结构模块的结构4.3 Verilog基本组合电路设计基本组合电路设计4.4 Verilog基本时序电路设计基本时序电路设计4.5 Synplify Pro综合器综合器4.6 Synplify综合器综合器4.1 Verilog简介简介oVerilog语言是语言是1983年由年由GDA(Gateway Design Automation)公司的)公司的Phil Moorby首创的,之后首创的,之后Moorby又设计了又设计了Verilog-XL仿真器,仿真器,Verilog-XL仿真仿真器大获成功,也使得器大获成功,也使得

2、Verilog语言得到推广使用。语言得到推广使用。o1989年,年,Cadence收购了收购了GDA,1990年,年,Cadence公开发表了公开发表了Verilog HDL,并成立了,并成立了OVI组织专门负责组织专门负责Verilog HDL的发展。的发展。oVerilog于于1995年成为年成为IEEE标准,称为标准,称为IEEE Standard 1364-1995(Verilog-1995)oIEEE“1364-2001”标准(标准(Verilog-2001)也获得通)也获得通过,多数综合器、仿真器都已支持过,多数综合器、仿真器都已支持Verilog-2001标准标准Verilog语

3、言的特点语言的特点o既适于可综合的电路设计,也可胜任电路与系统的仿真。既适于可综合的电路设计,也可胜任电路与系统的仿真。o能在多个层次上对所设计的系统加以描述,从开关级、能在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器传输级(门级、寄存器传输级(RTL)到行为级,都可以胜任,)到行为级,都可以胜任,同时语言不对设计规模施加任何限制。同时语言不对设计规模施加任何限制。o灵活多样的电路描述风格,可进行行为描述,也可进行灵活多样的电路描述风格,可进行行为描述,也可进行结构描述;支持混合建模,在一个设计中各个模块可以结构描述;支持混合建模,在一个设计中各个模块可以在不同的设计层次上建模和描

4、述。在不同的设计层次上建模和描述。oVerilog的行为描述语句,如条件语句、赋值语句和循的行为描述语句,如条件语句、赋值语句和循环语句等,类似于软件高级语言,便于学习和使用。环语句等,类似于软件高级语言,便于学习和使用。o内置各种基本逻辑门,便于进行门级结构描述;内置各内置各种基本逻辑门,便于进行门级结构描述;内置各种开关级元件,可进行开关级的建模。种开关级元件,可进行开关级的建模。o易学易用,功能强,可满足各个层次设计人员的需要。易学易用,功能强,可满足各个层次设计人员的需要。 4.2 Verilog模块的结构模块的结构 module aoi(a,b,c,d,f);/* 模块名为模块名为a

5、oi,端口列表,端口列表a,b,c,d,f */input a,b,c,d;/模块的输入端口为模块的输入端口为a,b,c,doutput f; /模块的输出端口为模块的输出端口为fwire a,b,c,d,f; /定义信号的数据类型定义信号的数据类型assign f=(a&b)|(c&d); /逻辑功能描述逻辑功能描述endmodule“与与-或或-非非”电路电路 4.2 Verilog模块的结构模块的结构oVerilog程序是由模块构成的。每个模块的内容都程序是由模块构成的。每个模块的内容都嵌在嵌在module和和endmodule两个关键字之间;每两个关键字之间;每个模块实

6、现特定的功能。个模块实现特定的功能。o每个模块首先要进行端口定义,并说明输入和输出每个模块首先要进行端口定义,并说明输入和输出口(口(input、output或或inout),然后对模块的功),然后对模块的功能进行定义。能进行定义。oVerilog程序书写格式自由,一行可以写几个语句,程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。一个语句也可以分多行写。o除了除了endmodule等少数语句外,每个语句的最后等少数语句外,每个语句的最后必须有分号。必须有分号。o可用可用 /*/ 和和 /对对Verilog程序作注释。程序作注释。 1模块声明模块声明o模块声明包括模块名字,模块输

7、入、输出端模块声明包括模块名字,模块输入、输出端口列表。模块定义格式如下:口列表。模块定义格式如下:module 模块名模块名(端口端口1,端口,端口2,端口,端口3,);2端口(端口(Port)定义)定义o对模块的输入输出端口要明确说明,其格式对模块的输入输出端口要明确说明,其格式为为:input 端口名端口名1,端口名,端口名2, 端口名端口名n;/输入端口output 端口名端口名1,端口名,端口名2, 端口名端口名n;/输出端口inout 端口名端口名1,端口名,端口名2, 端口名端口名n;/输入输出端口3信号类型声明信号类型声明o对模块中所用到的所有信号(包括端口信号、对模块中所用到

8、的所有信号(包括端口信号、节点信号等)都必须进行数据类型的定义。节点信号等)都必须进行数据类型的定义。Verilog语言提供了各种信号类型,分别模语言提供了各种信号类型,分别模拟实际电路中的各种物理连接和物理实体。拟实际电路中的各种物理连接和物理实体。o如果信号的数据类型没有定义,则综合器将如果信号的数据类型没有定义,则综合器将其默认为是其默认为是wire型。型。 4逻辑功能定义逻辑功能定义o模块中最核心的部分是逻辑功能定义。模块中最核心的部分是逻辑功能定义。o定义逻辑功能的几种基本方法定义逻辑功能的几种基本方法:(1)用)用assign持续赋值语句定义持续赋值语句定义assign语句多用于组

9、合逻辑的赋值,称为持续赋值方式。语句多用于组合逻辑的赋值,称为持续赋值方式。(2)用)用always过程块定义过程块定义always过程语句既可以用来描述组合电路,也可以描过程语句既可以用来描述组合电路,也可以描述时序电路。述时序电路。 (3)调用元件(元件例化)调用元件(元件例化)调用元件的方法类似于在电路图输入方式下调入图形符调用元件的方法类似于在电路图输入方式下调入图形符号来完成设计,这种方法侧重于电路的结构描述。号来完成设计,这种方法侧重于电路的结构描述。 Verilog 模块的模板模块的模板 module ();output 输出端口列表输出端口列表; /输出端口声明输出端口声明in

10、put 输入端口列表输入端口列表; /输入端口声明输入端口声明/*定义数据,信号的类型,函数声明定义数据,信号的类型,函数声明*/reg 信号名;信号名;/逻辑功能定义逻辑功能定义assign =; /使用使用assign语句定义逻辑功能语句定义逻辑功能/用用always块描述逻辑功能块描述逻辑功能always () begin /过程赋值过程赋值 /if-else,case语句语句 /while,repeat,for循环语句循环语句 /task,function调用调用 end /调用其他模块调用其他模块 ();/门元件例化门元件例化 门元件关键字门元件关键字 ();endmodule【例【

11、例4.5】 三人表决电路的三人表决电路的Verilog描述描述module vote(a,b,c,f);/模块名与端口列模块名与端口列表表input a,b,c;/模块的输入端口模块的输入端口output f;/模块的输出端口模块的输出端口wire a,b,c,f; /定义信号的数据定义信号的数据类型类型assign f=(a&b)|(a&c)|(b&c);/逻辑功能描述逻辑功能描述endmodule4.3 Verilog基本组合电路设计基本组合电路设计 4.3 Verilog基本组合电路设计基本组合电路设计 【例【例4.6】4位二进制加法器的位二进制加法器的Veril

12、og描述描述 module add4_bin(cout,sum,ina,inb,cin);input cin; input3:0 ina,inb;output3:0 sum; output cout;assign cout,sum=ina+inb+cin;/*逻辑功能定义逻辑功能定义*/endmodule综合综合 (RTL级)级)4位二进制加法器位二进制加法器RTL级综合结果(级综合结果(Synplify Pro)综合(门级)综合(门级)4位二进制加法器门级综合视图(位二进制加法器门级综合视图(Synplify Pro)【例【例4.8】 BCD码加法器码加法器module add4_bcd(c

13、out,sum,ina,inb,cin);input cin; input3:0 ina,inb;output3:0 sum; reg3:0 sum; output cout; reg cout; reg4:0 temp;always (ina,inb,cin) /always过程语句过程语句 begin temp9) cout,sum=temp+6; /两重选择的两重选择的IF语句语句 else cout,sum=temp; endendmodule4.3 Verilog基本组合电路设计基本组合电路设计 4.4 Verilog基本时序电路设计基本时序电路设计 【例【例4.94.9】 基本基本

14、D D触发器的触发器的VerilogVerilog描述描述module dff(q,d,clk);input d,clk; output reg q;always (posedge clk)begin q=d;endendmodule4.4 Verilog基本时序电路设计基本时序电路设计 【例【例4.10】 带同步清带同步清0/同步置同步置1(低电平有效)的(低电平有效)的D触发器触发器module dff_syn(q,qn,d,clk,set,reset);input d,clk,set,reset; output reg q,qn;always (posedge clk) begin if

15、(reset) begin q=1b0;qn=1b1;end/同步清同步清0,低电平有效,低电平有效else if(set) begin q=1b1;qn=1b0;end/同步置同步置1,低电平有效,低电平有效else begin q=d; qn=d; end endendmodule【例4.11】 带异步清0/异步置1(低电平有效)的D触发器module dff_asyn(q,qn,d,clk,set,reset);input d,clk,set,reset; output reg q,qn;always (posedge clk or negedge set or negedge rese

16、t) beginif(reset) begin q=1b0;qn=1b1; end/异步清异步清0,低电平有效,低电平有效else if(set) begin q=1b1;qn=1b0; end/异步置异步置1,低电平有效,低电平有效else begin q=d;qn=d; end endendmodule4.4 Verilog基本时序电路设计基本时序电路设计 【例【例4.124.12】 4 4位二进制加法计数器位二进制加法计数器module count4(out,reset,clk);input reset,clk; output reg3:0 out;always (posedge clk

17、)beginif(reset) out=0; /同步复位同步复位else out=out+1;/计数计数endendmodule综合综合 (RTL级)级)4位二进制加法计数器位二进制加法计数器RTL级综合视图级综合视图(Synplify Pro)综合(门级)综合(门级)4位二进制加法计数器门级综合视图位二进制加法计数器门级综合视图(Synplify Pro)4.5 Synplify Pro综合器综合器 oSynplify Pro的工作界面 【例4.15】 Johnson计数器(异步复位)module johnson(clk,clr,qout);parameter WIDTH=4;input c

18、lk,clr;output reg(WIDTH-1):0 qout;always (posedge clk or posedge clr)begin if(clr) qout=0;else begin qout=qout1; qout0=qoutWIDTH-1;endendendmoduleoSynplify Pro新建项目对话框 oSynplify Pro新建文件对话框 oImplementation Option对话框 o约翰逊计数器综合后的RTL级原理图 o约翰逊计数器综合后的门级原理图(MAX7000器件) o在Synplify Pro中启动Quartus 进行编译 oQuartus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论