linux下的EDA——VCS使用
来源:互联网 发布:手机破解软件资源 编辑:程序博客网 时间:2024/06/13 05:28
所用Linux系统为openSUSE64位,软件为VCS2012
在Linux下对verilogHDL进行功能仿真时非常必要的,下面提供两种常见方式。
1.脚本方式
1)建立工作文件夹pre_sim,并将tb文件和所有.v文件复制进入此文件夹
mkdir pre_sim
2)修改testbench文件
为输出波形文件,在testbench文件中加入如下语句
initial begin $dumpfile("counter.vcd"); //待输出的波形文件名,可更改 $dumpvars(0,u0);//u0为testbench中实例化的顶层文件名称,注意根据实际情况修改该名字endinitial #1000 $finish; //仿真电路的时间
保存文件
本次所用文件如下
testbench.v(实际文件名为tb_gao.v)
module counter_testbench () ; wire [3:0] out; reg clk; reg reset; counter u0 ( .out (out[3:0]), .reset (reset), .clk (clk) );initial begin clk = 1'b0; forever #10 clk = ~clk; endinitial begin reset = 1'b0; #4 reset = 1'b1; #4 reset = 1'b0;endinitial begin $dumpfile("counter.vcd"); $dumpvars(0,u0);endinitial #1000 $finish;endmodule
counter.v
module counter ( out, clk, reset ) ; input clk, reset; output [3:0] out; reg [3:0] out; always @(posedge clk or posedge reset) begin if (reset) begin // reset out <= 4'b0; end else begin out <= out + 1'b1; endendwire clk_out;clk_half u0( .clk_in(clk) ,.rst(reset) ,.clk_out(clk_out) );endmodule
clk_half.v
module clk_half( clk_in ,rst ,clk_out );input clk_in;input rst;output reg clk_out;always @(posedge clk_in or posedge rst) begin if (rst) begin // reset clk_out <= 0; end else begin clk_out <= !clk_out; endendendmodule
3)在vcs.scr文件中写入如下内容
vcs -R tb_gao.v counter.v clk_half.v +v2k +define+RTL_SAIF其中tb_gao.v为testbench文件,counter.v、clk_half.v为工程文件,注意要把所有的工程.v文件都添加进去
保存文件
4)在终端运行vcs.scr脚本文件
在终端中输入
source vcs.scr等待程序编译,如有报错则按照位置修改错误,直至仿真完成
5)查看波形
在终端中输入
dve打开波形文件,File->open database,打开.vcd文件
在Hierarchy界面中选择要查看的信号,右键New Wave View即可
2.命令行方式
1)新建工作文件夹vcs_test,将所有的工程文件与tb文件复制入
testbench中可以没有在脚本文件中添加的函数,一般的tb文件就可以
2)运行vcs
在终端中输入
vcs -V -R tb_gao.v counter.v clk_half.v -o simv -gui -debug_pp-V:Verbose模式,打印vcs在运行的过程中执行的C Compiler汇编器和链接器的指令
-R:这个指令是告诉VCS在编译完成以后直接运行可执行文件,如果你在编译的时候没有带上这个选项,编译完成以后VCS就退出了,但是你会发现在相应的目录下产生了以各可执行文件,默认叫simv-o:
-o:给后面的simv文件改名字,如改成counter.simv
-gui:调用VCS的图形化界面
-debug_pp:看波形必须要在debug模式下
其他一些指令
-q:退出模式;抑制了例如VCS使用的C编译器/VCS分析源文件、top层、制定的timescale的信息。
-notice:使能更详细的诊断信息。
-pvalue+parameter_hierarchical_name=value:这个选项是用来改变源文件中parameter参数值的命令。 例如:-pvalue+udut.uchip.ucore. IDLE =0
-full64:这个选项是为64位的操作系统准备的
-l filename:制定一个VCS产生的log文件名,如果你键入了-R选项,那么在编译和仿真的时候都会将log内容打印到log文件中
3)观察波形
图形界面此时应该已经打开,按照如下操作
阅读全文
0 0
- linux下的EDA——VCS使用
- linux下的EDA——VCS与Verdi仿真
- linux下的EDA——DC使用
- linux下的EDA——primetime使用
- vcs随机化的使用
- 我的EDA编程10—30
- vcs的plusagrs使用技巧
- linux下安装配置VCS,oracle双机
- linux下安装配置VCS,oracle双机
- VCS 使用
- EDA——计算机软件系统
- OpenLava——EDA的最佳支撑平台
- Flexlm 介绍— 常见EDA软件的license管理 - tjjbraye的个人空间 - EDA中国门户网站 - powered by X-Space
- Linux中wine环境下安装Protel系列EDA软件
- 版本控制系统VCS —— Git操作
- EDA大作业——交通灯
- EDA大作业——交通灯代码
- EDA工具使用笔记——ISE与modelsim联合仿真
- mysql的加密函数
- 主线程中延时启动dialog
- linux网络编程一:主机字节序与网络字节序的的判断
- WKWebView与js交互
- Hello GitHub
- linux下的EDA——VCS使用
- ICE的应用
- boolan面向对象编程 第一周笔记
- 剑指offer--复杂链表的复制
- spring学习笔记三
- 堆排序
- 测试垃圾回收次数
- 利用mybatis-generator自动生成代码
- 并查集