原创 [Verilog HDL入门]第三章 Verilog语言要素

2010-1-26 22:56 4307 5 6 分类: FPGA/CPLD

1、标识符(Identifier):由任意字母、数字、$符号、_(下划线)符号组成的字


                                   符序列。第一个字符必须是字母或者下划线。 区分大小写。


      转义标识符(Escaped Identifier):\OutGate  等同于 OutGate


                                                            但 \initial 不等同于 initial


     Verilog语言中的保留字(小写的关键词);转义关键词与关键词是不同的。


2、以$字符开始的标识符被认为是系统任务或系统函数


      任务可以返回0个或多个值;函数除了返回一个值以外,与任务类似。


      函数的执行不需要时间,即不允许有任何延迟,而任务可以带有延迟;但系


      统任务不能有任何延迟。


3、编译器指令:以'(反引号)起头的标识符


     'define     用于定义文本替换的宏命令


     'undef     取消前面定义的宏


    条件编译:


     'ifdef     检查该宏定义是否存在


    'ifndef   检查该宏定义是否不存在


    'else、'elseif、'endif


    'default_nettype   为隐式线网指定线网类型


    'include  用于在代码行中包含任何其他文件的内容


    'resetall  将所有的编译指令重新设置为缺省值


    'timescale    time_unit/time_precision


         注:当一个设计中的多个模块带有自身的 'timescale编译指令时,仿真器总是根据所有模块中的最小时间精度,所有延迟都相应地转换为最小延迟精度。


    'unconnected_drive               //出现在这两个编译指令之间的任何未连接的输入端


    'nounconnected_drive          //口,可以是上拉状态,也可以是下拉状态。


    上拉 pull1;下拉pull0。


    'celldefine                      //用于把模块标记为单元模块


   'endcelldefine                //可由某些PLI子程序调用


   'line    在Verilog编译器中将行号和文件名复制至指定的值。


4、值集合


   四种基本值:0、1、x、z  (在门的输入或表达式中的z通常被解释为x)


   三种类型的常数:Integer、Real、String


   整型的书写方式:十进制、基数格式


     [size] '[signed] base value


     b或B:二进制;o或O:八进制;d或D:十进制;h或H:十六进制


     例: 5'037    5位八进制数


               7'Hx     7位x,即:xxxxxxx


     注:a、基数格式通常为无符号数;


             b、若定义的位宽比常量指定的位宽大,对无符号数则在数的左边填0


                   补齐,而对有符号数则在左边填写符号位补齐;若数最左边一位为


                   x或z,则以x或z在左边补位。


             c、若位宽定义的比数值小,则最左边的多余位被相应的截断。


    实数:十进制表示、科学计数法


    字符串:双引号内的字符序列,不能被分成多行书写


5、数据类型:线网类型与变量类型


      线网类型:wire、trior、trireg、tri、wand、tril、


                          wor、triand、tri0、supply0、supply1


     表示法:net_kind [signed] [[msb:lsb]] net1,net2,...,netN


     tri类型的线网可用于描述多个信号源驱动的线网


     wor指两个驱动源中若某一个为1,则线网的值为1


     trior  三态线或


    wang 线与、triand 三态线与


    trireg 三态变量


    tri0、tri1用于逻辑线网的建模


   supply0、supply1 用于对“地”、“电源”线网建模


   未声明的线网被缺省地设置为1位的wire型线网


   向量线网与标量线网:scalared 可以对位赋值


                                           vectored不能对位赋值,必须对线网整体赋值


6、变量类型:reg、integer、time、real、realtime


        reg [signed][[msb:lsb]] reg1,reg2,...,regN;


     未初始化的reg变量的缺省值为x


     存储器(memories):由reg变量组成的数组;存储器被赋值时,需要定义一个


                                          索引。


     $readmemb  加载二进制值


     $readmemh  加载十六进制值


     time:用于存储和处理时间值


     实型(real)和实型时间(realtime):缺省值为0,不允许对位宽或字界做任何


               指定;若将x和z赋予实型变量则这些值将被当作0处理。


7、数组


      一维的reg变量数组被称作存储器


     不能用一条赋值语句就把某个数组的值赋值给另一个数组


     只能对数组的一个元素进行赋值操作


8、reg变量只能在always和initial语句中赋值


     wire线网只能用连续赋值语句或通过模块实例的输出端口赋值


     初始化后:reg为x;wire为z


9、参数parameter:一个常量,经常用于指定延迟和变量的位宽


     和'define的区别:参数是局部的,只在其定义的模块内部起作用;而'define对


     同时编译的多个文件起作用。


    localparameter  局部参数


10、下划线符号_可以自由地在整数和实数中使用;就数值本身而言,它们没有


        任何意义。被用来改进易读性。


    


    

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户347575 2011-10-19 21:20

你好,请问哪里下载到该书的第三版的pdf电子书?
相关推荐阅读
用户406798 2013-04-02 00:31
嵌入式系统概述-1#
2013年4月2日星期二 1、嵌入式系统的定义:       以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。  ...
用户406798 2010-02-08 20:49
[Verilog HDL入门]第五章 门级建模
1、内建基元(原语)门      多输入门:与门(and)、与非门(nand)、或门(or)、或非门(nor)、                          异或门(xor)、同或门(xnor)...
用户406798 2010-02-04 22:33
[Verilog HDL入门]第四章 表达式
1.操作数:常数、参数、线网、变量、位选、部分位选、                   存储器和数组元素、函数调用   常数:   用基数或不用基数表示的整数,其负值的处理方式是各不相同的。   不...
用户406798 2010-01-23 00:19
[Verilog HDL入门]第二章 入门指南
主要的知识点:        1.Verilog HDL语言的基本描述单位是模块。        2.对设计进行描述的四种风格:           a、数据流风格:使用连续赋值语句(如:assign...
用户406798 2010-01-21 23:54
[Verilog HDL入门]第一章 简介
主要的知识点:        1.   Verilog HDL是一种用于数字系统建模的硬件描述语言,模型的抽象层次              可以从算法级一直到开关级。        2.   Ver...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条