vcs && verdi labs(adder8)

adder8.v

module adder8 (
	input clk,
	input [7:0] a_i,
	input [7:0] b_i,
	output reg [8:0] c_o
);

always @ (posedge clk) begin
 	c_o <= a_i + b_i;
end

endmodule

adder8_tb.v

`ifndef TB_SEED
`define TB_SEED 0
`endif

module tb_adder8 ();
   wire [8:0] result;
   reg [7:0] input_0;
   reg [7:0] input_1;
   reg clk;
   wire #5 clk2;

   assign  clk2 = clk;
 
initial begin
 //  $fsdbDumpfile("top.fsdb");
 //  $fsdbDumpvars(0,tb_adder8);
   $vcdpluson();
   $display("TB_SEED is %d", `TB_SEED);

   clk = 0;
   input_0 = 8'd0;
   input_1 = 8'd0;
   
   #1000
   $display("All test PASS!");
   $finish;
end

always begin
   #10 clk = ~clk;
end

// Generate input
always @ (negedge clk) begin
   input_0 = $random() % 256;
   input_1 = $random() % 256;
end

// Check result
always @ (posedge clk2) begin
   if ((input_0 + input_1) != result) begin
      $display("Test failed for %x + %x = %x", input_0, input_1, result);
      $finish;
   end else begin
      $display("%x + %x = %x", input_0, input_1, result);
   end
end

adder8 dut(
   .clk(clk),
   .a_i(input_0),
   .b_i(input_1),
   .c_o(result)
 );

endmodule

makefile文件

.PHONY:comp	run_dve	run_verdi	clean

VCS = vcs -sverilog -timescale=1ns/1ns +vpi -l build.log -debug_pp	+v2k	-fsdb	-full64 \
			-ucli -i ucli_dump_fsdb.tcl \
			-LDFLAGS -rdynamic	\
			-vcs+lic+wait	\
			-P /opt/Synopsys/Verdi2015/share/PLI/VCS/LINUX64/novas.tab	\
			/opt/Synopsys/Verdi2015/share/PLI/VCS/LINUX64/pli.a	\
			-Mupdate -R

ifndef TB_SEED
TB_SEED = 500
endif

all:comp run_dve run_verdi

comp:
	$(VCS) +define+TB_SEED=$(TB_SEED) +incdir+. \
		adder8.v \
		tb_adder8.v

run_dve:
	dve	-vpd	vcdplus.vpd	&

run_verdi:
	verdi -f file.f -ssf top.fsdb -nologo -sv &

clean:
	rm -rf core csrc simv* vc_hdrs.h ucli.key urg* *.log *.fsdb novas.* verdiLog	*.fsdb	*.vpd	*.dat	*files	*.log
.PHONY:comp	run	run_dve	run_verdi	clean

VCS = vcs -sverilog -timescale=1ns/1ns +vpi -l build.log -debug_pp	+v2k	-fsdb	-full64
SIMV = 	./simv  -l simv.log

ifndef TB_SEED
TB_SEED = 500
endif

all:comp run run_dve run_verdi

comp:
	$(VCS) +define+TB_SEED=$(TB_SEED) +incdir+. \
		adder8.v \
		tb_adder8.v

run:
	$(SIMV)	+fsdbfile+top.fsdb

run_dve:
	dve	-vpd	vcdplus.vpd	&

run_verdi:
	verdi -f file.f -ssf top.fsdb -nologo -sv &

clean:
	rm -rf core csrc simv* vc_hdrs.h ucli.key urg* *.log *.fsdb novas.* verdiLog	*.fsdb	*.vpd	*.dat	*files	*.log

 filelist文件

tb_adder8.v
adder8.v

 tcl文件

global env

fsdbDumpfile "top.fsdb"
fsdbDumpvars 1 "tb_adder8"

run

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 我可以为您提供一些关于Linux系统中VCS、Dve 、 Verdi的使用教程的参考资料: 1.VCS:https://help.ubuntu.com/community/VersionControl 2.Dve:http://www.dve-software.com/support/documentation/ 3.Verdi:https://www.verdi-software.com/documentation/ ### 回答2: VCS、Dve和Verdi都是在Linux系统上常用的工具。 VCS是一款用于模拟电路设计验证的工具。使用VCS,我们可以编译和模拟设计文件,并对其进行功能验证。首先,我们需要在Linux系统上安装VCS。然后,通过命令行界面进入到设计文件所在的目录,并运行VCS编译命令。编译成功后,可以使用VCS的命令行参数来指定需要验证的模块,并执行模拟过程。通过观察波形图和日志输出,可以判断设计是否达到了预期的功能。 Dve是VCS的一部分,它提供了一个图形用户界面,用于方便地显示和分析VCS产生的波形图。使用Dve,我们可以加载VCS生成的波形文件,并进行波形编辑、信号分析和时序验证等操作。在Linux系统中打开Dve,我们需要首先在命令行界面中输入dve命令,然后在Dve界面中打开波形文件。通过Dve的操作,我们可以更直观地了解设计中的信号波形,并进行相关的验证工作。 Verdi是一款用于设计调试和分析的工具,也是VCS的一部分。在使用Verdi之前,我们需要确保已经安装了VCS。Verdi提供了一个图形用户界面,可以用于快速定位设计中的错误和优化设计性能。在Linux系统中,可以通过命令行进入到设计文件所在的目录,然后输入verdi命令来打开Verdi界面。在Verdi中,我们可以加载VCS产生的仿真数据,通过图形界面分析设计的时序、查看设计层次和进行时序约束的调整等。 总的来说,使用VCS需要编译和模拟设计文件,Dve可以帮助我们更直观地查看和分析波形,而Verdi则提供了设计调试和性能优化的功能。通过合理使用这三个工具,我们可以在Linux系统下进行高效而准确的电路设计验证工作。 ### 回答3: VCS是一种用于验证和确认电子设计的软件工具,被广泛用于硬件描述语言(HDL)设计、仿真和调试中。以下是在Linux系统中使用VCS的简要教程: 1. 安装VCS:首先,下载VCS安装包,并将其解压到指定目录。然后,通过命令行运行安装脚本,按照提示完成安装过程。 2. 编写和编译设计文件:使用任何一种硬件描述语言(如Verilog或VHDL)编写设计文件。然后,使用VCS提供的选项和命令编译设计文件,生成仿真可执行文件。 3. 运行仿真:使用命令行启动仿真,并提供所需的仿真参数,如时钟周期、仿真时间等。VCS将加载仿真可执行文件,并启动仿真进程。 4. 调试设计:VCS提供了一些强大的调试功能,如波形查看器、信号追踪、断点设置等。通过运行VCS提供的调试工具,可以在仿真过程中定位和解决设计中的问题。 5. 生成仿真报告:仿真完成后,VCS将生成仿真报告,其中包含仿真过程中的详细信息,如时钟周期、信号值变化等。可以使用报告来分析和评估设计的性能和正确性。 另外,Dve(Debug Visualizer for Engineers)和Verdi是VCS的附加工具,用于图形化调试和可视化分析设计。以下是它们的使用教程: 1. 安装Dve和Verdi:与安装VCS类似,先下载安装包并解压,然后按照指导进行安装。 2. 启动Dve和Verdi:可以通过命令行或图形界面启动Dve和Verdi工具。在启动后,选择要调试的仿真文件,并加载仿真波形。 3. 查看仿真波形:Dve和Verdi提供了直观的波形查看器,可以展示设计中信号的时序波形和值的变化。可以放大、缩小、平移波形,以便更好地分析设计中的问题。 4. 设置断点和触发条件:在Dve和Verdi中,可以设置断点和触发条件,以便在仿真过程中暂停,并检查设计中的信号和寄存器的值。 总结:使用VCS、Dve和Verdi能够在Linux系统中进行硬件设计的仿真、调试和分析。这些工具可以帮助设计工程师更轻松地验证设计的性能和正确性,并加快设计的开发和优化过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜻蜓队长c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值