随笔分类 -  verilog testbench

verilog PLI 实例
摘要:在testbench中可以通过PLI调用c/c++函数hello world示例:hello.c#include <stdio.h> void hello_call () { printf ("\nHello World\n");}hello.vmodule hello_pli (); initial begin $hello; #10 $finish;end endmodule如果使用vcs,则要添加tab文件以确定函数的关联hello.tab如下$hello call=hello_call acc+=rw:*编译运行命令为:vcs -R -P hell... 阅读全文

posted @ 2013-06-14 15:33 逆转骑士 阅读(714) 评论(0) 推荐(0)

verilog 字符串
摘要:3.4.3字符串常量 字符串是双引号内的字符序列,用一串8位二进制ASCⅡ码的形式表示,每一个8位二进制ASCⅡ码代表一个字符。例如:字符串“ab”等价于16'h5758。如果字符串被用作Verilog表达式或复制语句的操作数,则字符串被看做无符号整数序列。1.字符串变量声明 字符串变量是寄存器型变量,它具有与字符串的字符数乘以8相等的位宽。 【例3.13】字符串变量的声明。 存储12个字符的字符串“Hello China!”需要8*12(即96位)宽的寄存器。 reg [8*12:1] str1; initial begin str =“Hello China!”; end 2.字符 阅读全文

posted @ 2013-06-14 09:39 逆转骑士 阅读(13226) 评论(0) 推荐(0)

verilog 局部变量
摘要:verilog中使用局部变量要对相应的begin-end语句块起块名,如下initialbegin:block1 integer i;endinitialbegin:block2 integer i;end 阅读全文

posted @ 2013-06-13 15:56 逆转骑士 阅读(692) 评论(0) 推荐(0)

verilog同时输出到文件和屏幕
摘要:要想同时输出到屏幕只要将打开文件得到的fd的最低位置1即可integer fd;initialbegin fd = $fopen("log.txt"); fd = fd | 32'b1; $fwrite(fd,"hello\n");end 阅读全文

posted @ 2013-06-13 15:35 逆转骑士 阅读(676) 评论(0) 推荐(0)

verilog event 用法
摘要:在testbench中,可以使用event变量触发事件。event变量声明为:event var;event触发为:->var;捕获触发为:@(var);实例代码如下:event reset_trigger;event reset_done_trigger;initial begin forever begin @(reset_trigger); @(negedge clk); reset = 1; @(negedge clk); reset = 0; -> reset_done_trigger; endendinitialbegin : TEST_CASE #10 -> r 阅读全文

posted @ 2013-06-13 15:17 逆转骑士 阅读(7229) 评论(0) 推荐(0)

导航