资源描述:
《EDA课件 VHDL语言 第4章.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章Verilog设计初步主要内容4.1Verilog简介4.2Verilog模块的结构4.3Verilog基本组合电路设计4.4Verilog基本时序电路设计4.5SynplifyPro综合器4.6Synplify综合器4.1Verilog简介Verilog语言的特点Verilog语言是1983年由GDA(GatewayDesign既适于可综合的电路设计,也可胜任电路与系统的仿真。Automation)公司的PhilMoorby首创的,之后能在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器传输级(RTL
2、)到行为级,都可以胜任,Moorby又设计了Verilog-XL仿真器,Verilog-XL仿真同时语言不对设计规模施加任何限制。器大获成功,也使得Verilog语言得到推广使用。灵活多样的电路描述风格,可进行行为描述,也可进行1989年,Cadence收购了GDA,1990年,Cadence结构描述;支持混合建模,在一个设计中各个模块可以公开发表了VerilogHDL,并成立了OVI组织专门负责在不同的设计层次上建模和描述。VerilogHDL的发展。Verilog的行为描述语句,如条件语句、赋值语句和循环语句等,
3、类似于软件高级语言,便于学习和使用。Verilog于1995年成为IEEE标准,称为IEEE内置各种基本逻辑门,便于进行门级结构描述;内置各Standard1364-1995(Verilog-1995)种开关级元件,可进行开关级的建模。IEEE“1364-2001”标准(Verilog-2001)也获得通易学易用,功能强,可满足各个层次设计人员的需要。过,多数综合器、仿真器都已支持Verilog-2001标准4.2Verilog模块的结构4.2Verilog模块的结构aVerilog程序是由模块构成的。每个模块的
4、内容都b嵌在module和endmodule两个关键字之间;每f“与-或-非”电路个模块实现特定的功能。c每个模块首先要进行端口定义,并说明输入和输出d口(input、output或inout),然后对模块的功moduleaoi(a,b,c,d,f);能进行定义。/*模块名为aoi,端口列表a,b,c,d,f*/Verilog程序书写格式自由,一行可以写几个语inputa,b,c,d;//模块的输入端口为a,b,c,d句,一个语句也可以分多行写。outputf;//模块的输出端口为f除了endmodule等少数语句外
5、,每个语句的最后wirea,b,c,d,f;//定义信号的数据类型必须有分号。assignf=~((a&b)
6、(~(c&d)));可用/*……*/和//……对Verilog程序作注释。//逻辑功能描述endmodule1.模块声明2.端口(Port)定义模块声明包括模块名字,模块输入、输出端对模块的输入输出端口要明确说明,其格式口列表。模块定义格式如下:为:input端口名1,端口名2,……端口名n;//输入端口module模块名(端口1,端口2,端口3,……);output端口名1,端口名2,……端口名n;//输出
7、端口inout端口名1,端口名2,……端口名n;//输入输出端口3.信号类型声明4.逻辑功能定义对模块中所用到的所有信号(包括端口信号、模块中最核心的部分是逻辑功能定义。节点信号等)都必须进行数据类型的定义。定义逻辑功能的几种基本方法:Verilog语言提供了各种信号类型,分别模(1)用assign持续赋值语句定义拟实际电路中的各种物理连接和物理实体。assign语句多用于组合逻辑的赋值,称为持续赋值方式。如果信号的数据类型没有定义,则综合器将(2)用always过程块定义其默认为是wire型。always过程语句
8、既可以用来描述组合电路,也可以描述时序电路。(3)调用元件(元件例化)调用元件的方法类似于在电路图输入方式下调入图形符号来完成设计,这种方法侧重于电路的结构描述。Verilog模块的模板4.3Verilog基本组合电路设计module<顶层模块名>(<输入输出端口列表>);output输出端口列表;//输出端口声明【例4.5】三人表决电路的Verilog描述input输入端口列表;//输入端口声明/*定义数据,信号的类型,函数声明*/modulevote(a,b,c,f);//模块名与端口列reg信号名;//逻辑功能定义表
9、assign<结果信号名>=<表达式>;//使用assign语句定义逻辑功能//用always块描述逻辑功能inputa,b,c;//模块的输入端口always@(<敏感信号表达式>)beginoutputf;//模块的输出端口//过程赋值wirea,b,c,f;//定义信号的数据//if-else,c