后浪 网站建设类,西安免费做网站,2017国办网站建设规范,wordpress主循环这里记录三种仿真方式#xff1a; 第一种是将verilog文件一个一个敲在终端上进行仿真#xff1b; 第二种是将多个verilog文件的文件路径整理在一个文件中#xff0c;然后进行仿真#xff1b; 第三种是利用makefile文件进行仿真#xff1b;
以8位加法器为例#xff1a;
…这里记录三种仿真方式 第一种是将verilog文件一个一个敲在终端上进行仿真 第二种是将多个verilog文件的文件路径整理在一个文件中然后进行仿真 第三种是利用makefile文件进行仿真
以8位加法器为例
一位加法器
module fa(a, b, cin, sum, cout);
input a, b, cin;
output sum, cout;
assign {cout, sum} a b cin;
endmodule以一位加法器组成的4位加法器
module add4(a, b, cin, sum, cout);
input [3:0] a, b;
input cin;
output cout;
output [3:0] sum;
wire [3:1] c;fa u1(a[0], b[0], cin, sum[0], c[1]);
fa u2(a[1], b[1], c[1], sum[1], c[2]);
fa u3(a[2], b[2], c[2], sum[2], c[3]);
fa u4(a[3], b[3], c[3], sum[3], cout);endmodule以4位加法器组成的8位加法器
module add8(a, b, cin, sum, cout);
input [7:0] a, b;
input cin;
output cout;
output [7:0] sum;
wire c4, c8_0, c8_1;
wire [7:4] sum_0, sum_1;add4 u1(a[3:0], b[3:0], cin, sum[3:0], c4);
add4 low_add(a[7:4], b[7:4], 1b0, sum_0, c8_0);
add4 high_add(a[7:4], b[7:4], 1b1, sum_1, c8_1);assign sum[7:4] c4?sum_1:sum_0;
assign cout c4?c8_1:c8_0;endmoduletestbench
module addertb;
reg [7:0] a_test, b_test;
wire [7:0] sum_test;
reg cin_test;
wire cout_test;
reg [17:0] test;add8 u1(a_test, b_test, cin_test, sum_test, cout_test);initial
beginfor (test 0; test 18h1ffff; test test 1) begincin_test test[16];a_test test[15:8];b_test test[7:0];#50;if ({cout_test, sum_test} ! (a_test b_test cin_test)) begin$display(***ERROR at time %0d ***, $time);$display(a %h, b %h, sum %h; cin %h, cout %h,a_test, b_test, sum_test, cin_test, cout_test);$finish;end#50;end$display(*** Testbench Successfully completed! ***);$finish;
end
endmodule1.第一种将verilog文件一个一个敲在终端上进行仿真
在存在verilog文件的文件夹内打开终端输入以下命令
1.1 先进行编译
vcs fa.v addertb.v add8.b add4.v -l readme.log v2k -debug_all
1.2 再进行仿真
./simv -l run.log
1.3 打开图形化界面DVE
./simv -gui
1.4 在选中所有信号再右键add to wave再new wave view 1.5 最后输出波形
点击1处的小箭头便有波形出现。使用2处的三个按钮(预览全局、放大和缩小)调整波形。在3处鼠标左键按住不动左右拖动即可选取一个观察的时间范围。 2. 第二种将多个verilog文件的文件路径整理在一个文件中然后进行仿真
2.1 将verilog文件路径放在一个文件中文件命名为file.f
find -name *v file.f
gvim file.f
2.2 再进行编译
vcs -f file.f -l readme.log v2k -debug_all
2.3 编译后再进行仿真图形化界面和输出波形与第一种方法类似 3. 第三种是利用makefile文件进行仿真
3.1先编写makefile文件文件名为simv
.PHONY:com sim cleanOUTPUT simv VCS vcs -sverilog v2k -timescale1ns/1ns \-debug_all \-o ${OUTPUT} \-l compile.log \SIM ./${OUTPUT} -l run.logcom:${VCS} -f file.fsim:${SIM}clean:rm -rf ./csrc *.daidir *.log simv* *.key
3.2 再进行编译打开终端输入
make com
3.3 再进行仿真输入
make sim
3.4 再打开图形化界面
./simv -gui 参考资料
新手教程01逻辑仿真工具VCS的基础使用_vcs使用教程-CSDN博客
https://www.cnblogs.com/amxiang/p/16688581.html