第四章、verilog hdl设计技巧

第四章、verilog hdl设计技巧

ID:3141442

大小:1.75 MB

页数:56页

时间:2017-11-19

第四章、verilog hdl设计技巧_第1页
第四章、verilog hdl设计技巧_第2页
第四章、verilog hdl设计技巧_第3页
第四章、verilog hdl设计技巧_第4页
第四章、verilog hdl设计技巧_第5页
资源描述:

《第四章、verilog hdl设计技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章、VerilogHDL设计技巧本章通过一些简单的实例演示一下如何在veriloghdl中实现看似不可能实现的技巧,主要包括1.双向端口的使用2.PWM波形的产生3.常见几种分频器的设计4.巧用存储器定义语句实现存储器设计5.基于存储器的DDS设计6.有限状态机本章讲述一些常用的verilog设计方法和技巧,可以加速实际的工程应用,提高效率。双向端口双向端口在应用过程中常常用到,如在进行和存储器的接口设计时。由于存储器的数据线是双向信号,故FPGA的端口也必须用双向端口才能够连接。Verilog

2、HDL中的双向端口关键字为inout,如inoutdat,则表示dat为一个双向(既可以输入也可以输出)的端口。在硬件中为了更好的处理端口,大多数情况下都是使用单向端口,即input或者output。这样更容易对电路的逻辑进行描述。双向端口也往往转换成两个单向的端口进行操作。仔细分析一下,当一个端口作为双向端口时,实际上是分时的输入和输出,也就是说,当内部逻辑需要双向端口作为输入时,这时候是用双向的输入功能,反之,用输出功能。假设”内部需要”为一个变量,暂且命名为dir,则,双向端口转化为两个单向端

3、口的电路就可以如下图所示。io其他逻辑abdirBidir图中,实线框是整个的逻辑设计电路模块,io为此模块的双向端口。虚线框为将双向端口转化为两个单向端口的子模块,两个三角形的电路为三态门,上面的三态门低电平使能,下面的三态门高电平使能。当需要将io端作为输入时候,即dir为高(假设为高电平时使用io端的输入功能),上面的三态门被关闭,下面的三态门打开,于是信号的流向从io口经过下面的三态门由a端输出,那么这个时候其他逻辑部分就可以使用a端的信号进行运算处理;反之,当内部的其他逻辑需要输出信号至i

4、o双向端口时,可以置dir为低电平,上面的三态门被打开,下面的三态门被关闭,这样b端口的信号经由上面的三态门输出至io端。这样,虚线框中的子模块就完成了双向端口转化为两个独立的单向端口(a和b)的功能。代码如下:modulebidir(io,a,b);inoutio;//---------(1)outputa;inputb;assigna=(dir==1)?io:1’bz;//---------(2)assignio=(dir==0)?b:1’bz;//---------(3)endmodule 代

5、码注释:(1)声明io端口为双向端口,一般情况下双向端口的类型声明为wire型,这里省略,默认为wire型。(2)当dir为高电平时,io端口赋值给a端口,否则,a端为高阻态,也可以写成assigna=(dir)?io:1’bz;。(3)当dir为低电平时,b端口赋值给io端口,否则,io端赋值成高阻态,也可以写成assignio=(!dir)?b:1’bz;。上面电路中用到了三态门,通常来说,三态门在fpga和cpld内部不推荐使用,而且一般仅限于fpga或者是cpld的引脚端才有,内部没有三态门

6、。如果在设计过程中大量采用三态门的话,会使芯片的功耗大幅增加,资源浪费严重。仔细研究发现,可以在这里省略一个三态门。新电路如下:io其他逻辑abdirBidir2因为io的双向特性是分时使用的,所以在内部其他逻辑使用a端和b端的时候也是分时使用的,换句话说,当内其他逻辑部向b写的时候,无论a端是什么值对内部的其他电路时没有影响的,因为这个时候内部其他的逻辑不读取a端口;反过来,当内部需要读取a端的值的时候,a端的值必须来自于io端的值,故必须把b端和io端断开,即三态门呈现3态即可。新的代码如下:m

7、odulebidir2(io,a,b);inoutio;outputa;inputb;assigna=io;//---------(1)assignio=(dir==0)?b:1’bz;endmodule代码注释:(1)直接赋值即可。PWM波形的产生脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。PWM波形本质上是宽度可以变化的脉冲。见

8、下图ABC图中,从A到C为一个脉冲的周期,AB之间电平为高电平,称作这个脉冲周期的宽度,PWM是指AB之间的高电平宽度可以调节。若想用数字电路来实现pwm,不妨借鉴一下模拟电路中的pwm是如和生成的。先产生锯齿波,然后利用锯齿波的电压和另一个门限电压做比较,当门限电压变化的时候,比较器输出的脉冲宽度就变化了。示意图如下:门限a门限b由上图比较得知,当门限电平电压升高时,比较器的输出的占空比宽度在减少,即达到了脉冲宽度调制的目的。那么,在数字领域里,门限电平可以由一个任

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。