硬件描述语言Verilog-HDL.ppt
(5)语句的顺序执行与并行执行VerilogHDL中有顺序执行语句和并行执行语句之分。always块语句中的语句是顺序语句,按照程序书写的顺序执行。always块本身却是并行语句,它与其他always语句及assign语句、元件例化语句的执行都是同时(即并行)的。例9同步清除十进制加法计数器的描述同步清0是在时钟信号作用下,计数器的状态被clr清0,清0信号clr高电平有效;时钟信号clk上升沿触发。计数器计数状态从4’b0000到4’b1001循环。modulecnt10(clr,clk,q,co);inputclr,clk;output[3:0]q;outputco;reg[3:0]q;regco;always@(posedgeclk)beginif(clr)beginco=0;q=4’b0000;endelseif(q==4’b1001)beginq=4’b0000;co=1;endelsebeginco=0;q=q+1;endendendmodule**章节目录添加标题硬件描述语言概述添加标题词法构成添加标题VerilogHDL简介添加标题补充:常用语句添加标题基本程序结构添加标题模块的描述方式添加标题用VerilogHDL描述逻辑电路的实例添加标题组合逻辑电路的VerilogHDL描述添加标题时序逻辑电路的VerilogHDL描述9.2.3VerilogHDL模块的描述方式(建模方法)系统级(system):用高级语言结构实现设计模块的外部性能的模型。算法级(algorithmic):用高级语言结构实现设计算法的模型。RTL级(RegisterTransferLevel):描述数据在寄存器之间流动和如何处理这些数据的模型。门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。用VerilogHDL描述的电路就称为该设计电路的VerilogHDL模型建模层次:不同抽象级别的VerilogHDL模型*VerilogHDL模块的描述方式结构描述:描述元器件间连接关系:主要采用元件例化语句instantiate;数据流描述:描述电路数据流的流向:主要采用连续赋值语句assign;行为描述:描述电路的功能和行为:主要采用always、if、case、for、while等高级语言;混合描述:VerilogHDL允许多种描述方式共存于同一模块;一、结构描述1、基于库元件的结构描述门类型关键字例化的门名称(端口列表);门级描述即直接调用门基元进行逻辑的结构描述。以门级为基础的结构描述所建立的硬件模型不仅是可仿真的,也是可综合的;一个逻辑网络由许多逻辑门和开关组成,用逻辑门的模型来描述逻辑网络最直观!门类型的关键字有26个,常用的有9个:not,and,nand,or,nor,xor,xnor,buf,bufif1,bufif0,notif1,notif0(各种三态门)调用门基元的句法:注1:在端口列表中输出信号列在最前面;注2:门级描述不适于描述复杂的系统!门级描述可省略!例:采用结构描述方式描述以下硬件电路moduleexample2(y,a,b,c);inputa,b,c;outputy;wires1,s2,s3;not(s1,a);nand(s2,c,s1);nand(s3,a,b);nand(y,s2,s3);endmodule基于设计模块的结构描述任何用VerilogHDL描述的电路设计模块(module),均可用模块例化语句,例化一个元件,来实现电路系统的设计。模块例化语句格式与逻辑门例化语句格式相同。模块例化语句具体格式:设计模块名例化电路名(端口列表);其中,“例化电路名”是用户为系统设计定义的标识符,相当于系统电路板上为插入设计模块元件的插座,而端口列表相当于插座上引脚名表,应与设计模块的输入/输出端口一一对应。用模块例化方式设计