- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、模块的描述方式:
行为级或算法级描述方式(行为建模)
Initinal语句:此句只执行一次。
Always语句:此句循环执行。
Initinal和always在零时刻并发执行。4bit二进制行波计数器用行为描述方式实现:module cnt_4bit(q,clear,clock);
Output [3:0] q;
Intput clear clock;
Reg [3:0] q;
Always @(posedge clear or negedge clock)
Begin
If (clear)
Q=4’d0;
Else
Q=(q+1) %16;
End
endmodule模块cnt_bit的输出端口q是一个4bit的位矢量,代表4根输出端口q【3】、q【2】、q【1】、q【0】。由于该输出端口要在always语句中被赋值,所以它被定义成reg型(寄存器型数据)
(2)数据流描述方式(数据流级建模)数据流描述方式也称rtl(寄存器传输型)描述方式。在这种描述方式下设计者需要知道数据是如何在寄存器之间传输的,以及将被如何处理。在verilog中的数据描述方式主要来描述组合逻辑,具体有连续赋值语句“assign”来实现。下面还是以4bit的二进制的行波计数器为例说明:
第一步:顶层模块cnt_4bit_1,代码包含四个T触发器的模型
module cnt_4bit_1 (q,clear,clock)
output [3:0] q;
intput clear,clock;
T_ff tff0(q[0],clear,clock);
T_ff tff1(q[1],clear,clock);
T_ff tff2(q[2],clear,clock);
T_ff tff3(q[3],clear,clock);
endmodule
第二步:设计触发器模块,其中又包含了下一层的D触发器模块edge_dff。
module T_ff(q,clear,clock);
output q;
input clear,clock;
edge_dff ff1(q,~q,clear,clock);
endmodule
第三步:最底层模块负边沿D触发器edge_dff
module edge_dff(q,qbar,d,clear,clock)
output q,qbar;
inout d,clear,clock;
wire s,sbar,r,rbar,cbar;
assign cnar=~(clear);
//输入锁存器:锁存器是电平敏感的。而一个边沿敏感的触发器需要使用3个RS锁存器来实现。
assign sbar=~(rbars),
s=~(sbarcbar~clock),
r=~(rbar~clocks),
rbar=~(rcbard);
//输入锁存
assign q=~(sqbar),
qbar=~(qrcabr);
endmodule
wire是数据连线型数据,也是verilog的关键字,用来描述连线型数据流的传输关系。
(3)门级描述方式
是按照它们的逻辑门和之间的互联来实现。这些基本的门级元件是一类特殊的模块,共14种,分为4类,它是由verilog hdl语言自身提供的!不需要用户事先定义,可以直接调用。
负边沿D触发器:module edge_dff_1(q,qbar,d,clear,clock);
output q,qbar;
input d,clear,clock;
wire cbar,clkbar,sbar,s.r,rbar;
not N1(cbar,clear),
N2 (clkbar,clock);
nand NA1(sbar,rbar,s)
NA 2()
NA 3()
NA4()
NA5()
NA6()
endmodule
数据流风格的描述好像是在列逻辑方程式,而门级描述好像是在画电路图。它们最终实现的功能是完全相同的!
(4)开关级描述及方式(开关级建模)
又称晶体管机描述方式是verilog的最低级抽象级别的描述方式。这些开关级元件也是一类特殊的模块,共12种。由verilog hdl自身提供,不需要用户自己定义。
module my_nor(out,a,b)
output out;
intput a,b;
wire c;
suppply1 pwr;
supply0 gnd;
pmos (c,pwr,b);
pmos(out,c,a);
nmos(out,gand,a);
nmos(out,gand,b);
endmodule
(5)描述方式总结
从设计的成熟性上考虑大多数的模块都可以转化成门级描述方式来实现。
verilog语言行为级描述式:行为级和数据流
verilog语言
行为级描述式:
行为级和数据流
文档评论(0)