原创 Verilog的常数的声明(parameter和define)

2009-3-15 18:24 16256 3 3 分类: FPGA/CPLD

Verilog常数的声明(parameterdefine<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


1、语法
声明:
parameter xx = yy;
`define XX YY

使用:
xx
`XX

2
、作用域
parameter
作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。

如果想让parameter`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
 `define xx yy // or parameter xx = yy;
`endif

`define
也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。

3
、作用
parameter
可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文


 


 


数字声明


Verilog中有两种数字生命:指明位数的数字不指明位数的数字


指明位数的数字表示形式<size>’<base format><number>


Size用来指明数字位宽度,只能用十进制整数表示


Base format包括十进制(’d’D)二进制(’b’B八进制(‘o’O)十六进制(‘h’H)


例如


<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4’b1111       //42进制数


12’h3ac      


要注意的是这不是表示1216进制数,表示12位二进制显示是16进制数


 


例子


parameter LinePeriod =12'd1040;


parameter H_SyncPulse=8'd120;


parameter H_BackPorch=10'd1040;


parameter H_ActivePix=706;


 


综合(Synthesize)


       LinePeriod = "010000010000"


H_SyncPulse = "01111000"


H_BackPorch = "0000010000"


H_ActivePix = "00000000000000000000001011000010"


 


   可以看出12’d 不是表示有12位十进制,而是表示有12位二进制。如果没有限定位数,ISE综合时默认为32位,所以编Verilog的时候不要超过32位。


   如果限定多余32位的话,综合时会报错。



 


parameter H_ActivePix=33'b706;


 


会报错,报错信息如下:


 


ERROR:HDLCompilers:34 - "VGA_800X600.v" line 19 Illegal digit(s) in binary constant '706'


 


还有注意的一个问题是LinePeriodH_BackPorch都是1040(十进制),1040二进制为11位(2的十次方为1024),但“H_BackPorch”没有因为位数不够报错,但是把高位截掉了,变成“0000010000,所以在Verilog编程的时候要注意赋值问题。


 


不限定位数,默认为32位,这很浪费寄存器资源。


限定位数小于常数的位数时,赋值就不正确了。


    所以赋值的位数要有富裕但不至于太浪费寄存器资源


 


 


参考资料:


1)           Verilogparameterdefine 


http://www.rickysu.com/bo/post/57/ 


2)           Verilog HDL语法基础(1)


http://blog.21ic.com/user1/5196/archives/2008/50766.html

文章评论0条评论)

登录后参与讨论
相关推荐阅读
藤井树 2015-10-12 14:43
印制电路板的抗干扰设计 zz
印制电路板的抗干扰设计     作者:中船重工集团第707所 肖麟芬   摘   要:本文以印制电路板的电磁兼容性为核心,分析了电磁干扰的产生机理...
藤井树 2013-10-22 15:32
2010.5.30 黄草梁上包饺子一日登山活动——摘韭菜篇
        上次桃花节的时候也有野韭菜,那时候的我连草和韭菜叶分不清,才回去的韭菜也不敢吃,哈哈,这次可算真正见识了韭菜,黄草梁也叫韭菜梁,因为满山遍野都是野韭菜而闻名,比较圆比较粗的就是野韭...
藤井树 2013-10-22 15:28
2010.5.30 黄草梁上包饺子一日登山活动——包饺子篇
摘韭菜回来,大家已经忙开了 我也装模作样地“工作着” 哈哈,还不让我包,包饺子是技术活,一定要皮薄馅厚才有资格包,像我这样的只能旁观了 摘的韭菜应该足够了,旁边那个袋子是我摘来带回学校的 ...
藤井树 2013-08-09 15:19
datasheet下载网站整理(查IC芯片手册)【原创】
*************************************************************************         作为电子工程师,芯片的dat...
藤井树 2010-06-04 00:21
陈伟宁王辉一家捐助渠道(北京菲亚特—英菲尼迪)
       王辉的最新消息请关注 http://chenweining.org/       目前事故责任认定已经出来了——陈家全责。        发信人: program (程序), 信区: D...
藤井树 2010-06-01 13:43
2010.5.30 黄草梁上包饺子一日登山活动——美景篇
这天不得不说的是天空,蓝蓝的天空,白白的云    绿油油的山脊  我、洪涛哥哥、huangna妹妹还有她同事小艾走在黄草梁上    在蓝天白云下合影       阳光照过来,景色真美 象鼻山,走不...
广告
我要评论
0
3
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /3 下一条