2014各种课程文件verilog中级篇.pptx

第9章 Verilog HDL模型的不同抽象级别 概 述 由初级篇中可知,Verilog模型可以是实际电路中不同级别的抽象。所谓不同的抽象级别,实际上是指同一个物理电路,可以在不同的层次上用Verilog语言来描述它。从行为和功能的角度来描述某一电路模块,就称为行为模块;如果从电路结构的角度来描述该电路模块,就称为结构模块。 河北大学电信学院---基础教研部第9章 Verilog HDL模型的不同抽象级别 抽象的级别和它们对应的模型类型共有以下五种系统级(system)算法级(algorithmic)RTL级(RegisterTransferLevel):门级(gate-level):开关级(switch-level)河北大学电信学院---基础教研部门级结构描述 一个逻辑电路是由许多逻辑门和开关所组成,因此用逻辑门的模型来描述逻辑电路是最直观的。Verilog HDL提供了一些门类关健字,可以用于门级结构建模。门级建模:直观,但繁琐。Verilog HDL中有关门类型的关键字共有26个,在本教材中只介绍最基本的8个。河北大学电信学院---基础教研部与非门、或门和反向器等及其说明语法 and --与门 nand -- 与非门 nor -- 或非门 or -- 或门 xor --异或门 xnor --异或非门 buf -- 缓冲器 not --非门 bufif1 -- 三态门 notif1多输入门多输出门河北大学电信学院---基础教研部例:门类型 强度 延时 实例名 (端口); nand (strong1, pull0) # 2 n1 (o, a, b); 省略 nand #10 d1(a,data,clock,clear); buf #10 b1(out1,out2……in); not #10 n1(out1,out2……in), ………………….., n2(out1,out2……in);bufif1 bu1(out, in, ctrl);notif0 no1(out, in, ctrl);驱动能力和延时是可选项河北大学电信学院---基础教研部9.1.2 用门级结构描述D触发器河北大学电信学院---基础教研部 module flop(data,clock,clear,q,qb); input data,clock,clear; output q, qb; nand #10 nd1(a,data,clock,clear), nd2(b,ndata,clock), //表示nd1到nd8都是nand nd4(d,c,b,clear), nd5(e,c,nclock), nd6(f,d,nclock), nd8(qb,q,f,clear); nand #9 nd3(c,a,d), nd7(q,e,qb); not #10 iv1(ndata,data), iv2(nclock,clock);endmodule//注意结束时用逗号,最后才用分号注意:可综合代码中不能出现“# d”延时控制语句!河北大学电信学院---基础教研部9.1.3 由已经设计成的模块构成更高一层的模块给电路中输入、输出引脚赋予端口名每条内部连线取连线名每个逻辑单元取名(调用名)给所要描述的电路确定一个模块名依照电路图确定连接关系模块引用河北大学电信学院---基础教研部如果已经编制了一个模块,可以在另外的模块中引用这个模块。引用的方法 (1) flop flop_d(d1,clk,clrb,q,qn);// module flop(data,clock,clear,q,qb) (2)flop flop_d(.clock(clk),.q(q),.clear(clrb),.qb(qn),.data(d1));`include “flop.v”module hardreg(d,clk,clrb,q); input clk,clrb; input[3:0] d; output[3:0] q;flop f1(d[0],clk,clrb,q[0],), f2(d[1],clk,clrb,q[1],), f3(d[2],clk,clrb,q[2],), f4(d[3],clk,clrb,q[3],);endmodule结束时用逗号,最后才用分号请注意:当例引用已编模块flop时,由于不需要flop端口中的qb口,故在引用时把它省去,但逗号仍需要保留。河北大学电信学院---基础教研部9.2 Verilog HDL的行为描述建模对于上面两个例子,还可以用比较抽象Veritog描述方法来建立模型。 【例9.3】 用行为描述的方法来描述带清

文档评论(0)

1亿VIP精品文档

相关文档