verilog教程语法细节(深圳大学)

上传人:飞*** 文档编号:48277633 上传时间:2018-07-12 格式:PPTX 页数:132 大小:1.84MB
返回 下载 相关 举报
verilog教程语法细节(深圳大学)_第1页
第1页 / 共132页
verilog教程语法细节(深圳大学)_第2页
第2页 / 共132页
verilog教程语法细节(深圳大学)_第3页
第3页 / 共132页
verilog教程语法细节(深圳大学)_第4页
第4页 / 共132页
verilog教程语法细节(深圳大学)_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《verilog教程语法细节(深圳大学)》由会员分享,可在线阅读,更多相关《verilog教程语法细节(深圳大学)(132页珍藏版)》请在金锄头文库上搜索。

1、数字系统设计 第二部分Verilog 高级语法详细解释 深圳大学信息工程学院 徐渊语法要点详细讲解 有关测试模块编写的语法 ; 语法的高级部分: 函数、任务、文件、存贮器建立模型、双向总线、UDP 综合指令语法详细讲解语法详细讲解VerilogVerilog测试模块的编写测试模块的编写目的: 复习如何编写较复杂的测试文件,对所做的设计进 行完整的测试和验证。 掌握组织模块测试的常用方法;学会编写常用的测试 代码。 了解ROM和RAM 了解双向端口语法详细讲解语法详细讲解用用VerilogVerilog设计的步骤设计的步骤注:虚线表示编译器能检查输入文件的可读性和是否存在以及是否允许生成输出文件

2、include文件设计文件厂家元件库文件输入文件: 激励和期望 的输出信号输出文件:激 励和实际输出 的信号编译器仿真器仿真器语法详细讲解语法详细讲解测试平台的组成测试平台的组成激励信号需要验证的设计激励信号和用于验证的结果数据需要验证的设计简单的测试平台复杂的测试平法详细讲解语法详细讲解并行块并行块在测试块测试块中常用到forkjoin块块。用并行块块能表示以同一个时间时间起点算起的多个事件的运行,并行地执执行复杂杂的过过程结结构,如循环环或任务务。举举例说说明如下:module inline_tb; reg 7:0 data_bus;initial forkdata_bus= 8b00;#

3、10 data_bus = 8h45;/这这两个repeat开始执执行时间时间不同,但能同时时运行#20 repeat (10) #10 data_bus = data_bus +1;#25 repeat (5) # 20 data_bus = data_bus );举举例如下:module tmodule t; integer r_seedinteger r_seed;rom m1(data, addr); rom m1(data, addr); .initial r_seed=2; initial r_seed=2;always (posedge clk) always (posedge

4、clk)addr = $random(r_seed) %1024; addr = $random(r_seed) %1024; . / /用来测试地址为用来测试地址为0 0到到10241024之间任意值时的之间任意值时的RomRom。 endmoduleendmodule语法详细讲解语法详细讲解 文件的使用文件的使用 语语法要点:$fopen(“文件名“);file_handle=$fopen(“文件名“);/标准的输出显示器 descriptor=32h0000_0001(bit 0 set)integer handle1, handle2.;initial beginhandle1= $f

5、open(“file1.out“); /bit 1 sethandle2= $fopen(“file2.out“); /bit 2 sethandle3= $fopen(“file3.out“); /bit 2 set end 语法详细讲解语法详细讲解 写到文件中去写到文件中去语语法要点: $fdisplay (,p1,p2,.pn);$fmonitor (,p1,p2,.pn);integer desc1,desc2,desc3;initial begin desc1=handle1|1;fdisplay(desc1, “ Display 1“,); /写到文件file1.out (hand

6、le1)和显示器(1)(stdout)desc2=handle2|handle1;fdisplay(desc2, “ Display 2“,); /写到文件file1.out (handle1)和文件file2.(handle2)desc3=handle3;fdisplay(desc3, “ Display 3“,); /只写到文件file3.out (handle1)中end语法详细讲解语法详细讲解 关闭文件关闭文件 语语法要点: $fclose ();举例:$fclose(handle1); /关闭file1.out 语法详细讲解语法详细讲解 层次信息的显示层次信息的显示 可以用于任何显显

7、示任务务如:$display,$write,$monitor,$strobe.举举例:module M;.initial $display (“Displaying in %m“);endmodulemodule top;M m1( ); /显示层次信息M m2( );M m3( ); .endmodule 语法详细讲解语法详细讲解 层次信息的显示层次信息的显示 显显示任务结务结果如下: Displaying in top.m1 Displaying in top.m1Displaying in top.m2 Displaying in top.m2 Displaying in top.m3

8、Displaying in top.m3语法详细讲解语法详细讲解 用文件中的数据初始化存储器用文件中的数据初始化存储器语语法要点: $readmemb(文件名,存储器名);$readmemb(文件名, 存储器名,起始地址);$readmemh(文件名, 存储器名,起始地址);举例:module test;reg 7:0 memory 0:1023integer i;inititial begin $readmemb (“init.dat“,memory);for (i=0;i1024;i=i+1;)$display (“memory %0d=%b“, i, memory);endendmodu

9、le语法详细讲解语法详细讲解 用文件中的数据初始化存储器用文件中的数据初始化存储器init.dat 文件内容:0021111_1111 0101_01010000_0000 1010_1010008Zzzz_1111 0000_11111111_0000 0001_1000.memory 0=xxxxxxxxmemory 0=xxxxxxxx memory 1=xxxxxxxxmemory 1=xxxxxxxx memory 2=11111111memory 2=11111111 memory 3=01010101 memory 3=01010101 memory 4=00000000memo

10、ry 4=00000000 memory 5=10101010memory 5=10101010 memory 6=xxxxxxxxmemory 6=xxxxxxxx memory 7=xxxxxxxxmemory 7=xxxxxxxx memory 8=zzzz1111memory 8=zzzz1111 memory 9=00001111memory 9=00001111 memory 10=11110000memory 10=11110000 memory 11=00011000memory 11=00011000 . 语法详细讲解语法详细讲解 用户定义的原语用户定义的原语目标标学会怎样样

11、使用用户户定义义的原语语来创创建逻辑逻辑。用户户定义义的原语语元件 (UDP) 其行为为与 Verilog 语语法中本来就存在的 primitive(原语语元件)相似,它用一个表格来定义义它的逻辑逻辑功能。语法详细讲解语法详细讲解 什么是什么是UDPUDP?在在 Verilog Verilog 结结结结构建模构建模时时时时,可以使用:,可以使用: 二十多个二十多个门级门级门级门级源源语语语语元件(元件(primitivesprimitives)。)。 用用户户户户定定义义义义的源的源语语语语元件(元件(UDPUDP)。)。UDP UDP 可用于可用于ASIC ASIC 库库库库中的基本元件(中

12、的基本元件(cellcell) )设计设计设计设计,以及小,以及小规规规规模芯模芯 片和中片和中规规规规模芯片的模芯片的设计设计设计设计。 。 使用使用 UDP UDP可以在可以在现现现现有的有的Verilog Verilog 语语语语言支持的源言支持的源语语语语元件的基元件的基 础础础础上上编编编编写新的源写新的源语语语语元件。元件。 UDP UDP 是一个独立元件,是一个独立元件, 不能用不能用实实实实例例调调调调用的方法用的方法调调调调用其他的用其他的 模模块块块块。 。 UDP UDP 既可以用来表示既可以用来表示时时时时序序逻辑逻辑逻辑逻辑元件,也可以表示元件,也可以表示组组组组合合

13、逻辑逻辑逻辑逻辑 元件。元件。 UDP UDP 的行的行为为为为是使用真是使用真值值值值表来描述的表来描述的 。 。 调调调调用用 UDP UDP 的方式与的方式与调调调调用用VerilogVerilog语语语语言提供的源言提供的源语语语语元件的方元件的方 式相同。式相同。语法详细讲解语法详细讲解 什么是什么是UDPUDP?注意:注意: UDP UDP 是一种是一种紧紧紧紧凑的表示凑的表示简单逻辑简单逻辑简单逻辑简单逻辑关系部件的方法。关系部件的方法。 在在VerilogVerilog语语语语言提供的几种基本源言提供的几种基本源语语语语元件中,若在元件中,若在输输输输入入 中包含不确定中包含不

14、确定值值值值x x, ,则则则则在在输输输输出出时时时时可能出可能出现现现现不确定不确定值值值值 x x;而;而 在在 UDP UDP 中中则则则则不允不允许许许许出出现现现现此种情况。此种情况。 由几个原由几个原语语语语元件元件组组组组成的成的逻辑逻辑逻辑逻辑可以用一个可以用一个UDPUDP表示。在表示。在 仿真仿真时时时时使用使用这样这样这样这样的的UDPUDP来代替分散的原来代替分散的原语语语语元件可以元件可以节节节节 省省计计计计算算资资资资源,加快仿真速度。一般的仿真器源,加快仿真速度。一般的仿真器处处处处理行理行为为为为模模 型表示的型表示的逻辑逻辑逻辑逻辑所需所需时间时间时间时间

15、比比处处处处理用理用门级语门级语门级语门级语句表示的相同句表示的相同 逻辑逻辑逻辑逻辑所需所需时间时间时间时间少;而硬件仿真器正好相反。少;而硬件仿真器正好相反。 语法详细讲解语法详细讲解UDPUDP的特点的特点 UDP UDP 只能有一个只能有一个输输输输出端,而且必出端,而且必须须须须是端口是端口说说说说明列表的第一明列表的第一 项项项项。 。 UDP UDP 可以有多个可以有多个输输输输入端,最多允入端,最多允许许许许有有 10 10 个。个。 UDP UDP 所有端口所有端口变变变变量必量必须须须须是是标标标标量,不允量,不允许许许许使用双向端口。使用双向端口。 UDP UDP 不支持不支持Z Z(高阻)(高阻)逻辑值逻辑值逻辑值逻辑值。 。 在仿真的开始在仿真的开始时时时时刻,可以使用刻,可以使用 initial initial 语语语语句把句把UDP UDP 的的输输输输出初出初 始化始化为为为为一个已知一个已知值值值值。 。 UDP UDP 不支持不支持综综综综合,即不能通合,即不能通过综过综过综过综合把它合把它转变为门级结转变为门级结转变为门级结转变为门级结构构逻逻逻逻 辑辑辑辑。 。语法详细

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号