verilog语法入门学习——2011年2月27日18点10分32秒.doc_第1页
verilog语法入门学习——2011年2月27日18点10分32秒.doc_第2页
verilog语法入门学习——2011年2月27日18点10分32秒.doc_第3页
verilog语法入门学习——2011年2月27日18点10分32秒.doc_第4页
verilog语法入门学习——2011年2月27日18点10分32秒.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

module 和 endmodule 中间放置定义。有输入与输出,以及直接的逻辑,如下:module adder ( count,sum,a,b,cin ); input 2:0 a,b; input cin; output count; output 2:0 sum; assign count,sum=a+b+cin; endmodulemodule compare ( equal,a,b ); output equal; /声明输出信号equal input 1:0 a,b; /声明输入信号a,b assign equal=(a=b)?1:0; /*如果两个输入信号相等,输出为1。否则为0*/endmodulemodule trist2(out,in,enable); output out; input in, enable; bufif1 mybuf(out,in,enable);Endmodulemodule trist1(out,in,enable); output out; input in, enable; mytri tri_inst(out,in,enable); endmodule module mytri(out,in,enable); output out; input in, enable; assign out = enable? In : bz; endmodule测试模块常见的形式:module t;reg ; /被测模块输入/输出变量类型定义wire; /被测模块输入/输出变量类型定义initial begin ; ; ; end /产生测试信号always #delay begin ; end /产生测试信号Testedmd m(.in1(ina), .in2(inb), .out1(outa), .out2(outb) );/被测模块的实例引用initial begin .; .; . end /记录输出和响应endmodulemodule t;reg a, b, sel;wire out;/引用多路器实例 mux2_m (out, a, b, sel);/加入激励信号initial begin a=0; b=1; sel=0; #10 b=0; #10 b=1; sel=1; #10 a=1; #10 $stop; endinitial begin $monitor ($time, , “out=%b a=%b sel=%b”, out,a,b,sel); End 在initial 块中,用系统任务$time 和 $monitor$dumpfile(“file.dump”); /打开记录数据变化的数据文件$dumpvars(); /选择需要记录的变量$dumpflush; /把记录在数据文件中的资料转送到硬盘保存$dumpoff; /停止记录数据变化$dumpon; /重新开始记录数据变化$dumplimit(); /规定数据文件的大小(字节)$dumpall; /记录所有指定信号的变化值到数据文件中 begin $dumpfile(“vlog.dump”); $dumpvars(0,top); End常数表示方法:位数基数值64hff01 8b1101_0001 h83aVerilog语言是大小写敏感的HiZ、高阻抗、三态、无驱动源 Verilog 有三种主要的数据类型: Nets Register ParameterNET种类类型 功能 wire, tri 对应于标准的互连线(缺省) supply1, supply2 对应于电源线或接地线 wor, trior 对应于有多个驱动源的线或逻辑连接 wand, triand 对应于有多个驱动源的线与逻辑连接 trireg 对应于有电容存在能暂时存储电平的连接 tri1, tri0 对应于需要上拉或下拉的连接Register种类 类型 功能 . reg 无符号整数变量,可以选择不同的位宽。 integer 有符号整数变量,32位宽,算术运算可产生2的 补码。 real 有符号的浮点数,双精度。 time 无符号整数变量,64位宽(Verilog-XL仿真 工具用64位的正数来记录仿真时刻)module DUT(Y, A, B_);output Y;input A,B: wire Y, A, B; and (Y, A, B);endmodule如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型变量module top;wire y; reg a, b; DUT u1(y,a,b); initial begin a = 0; b = 0; #10 a =1; . endendmodule module md1(out,in1,in2);.parameter cycle=20, prop_del=3, setup=cycle/2-prop_del, p1=8, x_word=16bx, file = “/user1/jmdong/design/mem_file.dat”;wire p1:0 w1; /用参数来说明wire 的位宽 . initial begin $open(file); . #20000 display(“%s”,file); $stop end .endmodule参数值的改写module mod ( out, ina, inb);parameter cycle = 8, real_constant=2.039, file = “/user1/jmdong/design/mem_file.dat”;endmodulemodule test; m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论