Linux系统下IC设计流程简介(二选一选择器示例)
1、创建文件夹和文件
创建文件夹
[ICer@IC_EDA /home/ICer/digital_ic_design]$mkdir muxtwo
进入刚创建的文件夹
[ICer@IC_EDA /home/ICer/digital_ic_design]$cd muxtwo/
创建文件
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$touch muxtwo.v
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$touch muxtwo_tb.v
2、编辑文件
用gvim
打开muxtwo.v
文件
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$gvim muxtwo.v
muxtwo.v
内容如下:
// Create Date: 2024/04/01
// Module Name: muxtwo.v
module muxtwo(
out,
a,
b,
sl
);
input a;
input b;
input sl;
output out;
reg out;
always @ (*)begin
if (!sl)
out = a;
else
out = b;
end
endmodule
用gvim
打开muxtwo_tb.v
文件
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$gvim muxtwo_tb.v
muxtwo_tb.v
内容如下:
// Create Date: 2024/04/01
// Module Name: muxtwo_tb.v
module muxtwo_tb;
reg ain;
reg bin;
reg select;
reg clk;
wire outw;
initial begin
ain = 0;
bin = 0;
select = 0;
clk = 0;
#6000 $finish;
end
always #50 clk = ~clk;
always @ (posedge clk) begin
#1 ain = {$random}%2;
#3 bin = {$random}%2;
end
always #1000 select = !select;
muxtwo m_u1(
.out(outw),
.a(ain),
.b(bin),
.sl(select)
);
/*dump fsdb file*/
initial begin
$fsdbDumpfile("tb.fsdb");//这个是产生名为tb.fsdb的文件
$fsdbDumpvars;
end
endmodule
3、文件列表和Makefile文件
将.v
文件放到一个列表文件中
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$find -name "*.v" > filelist.f
打开filelist.f
查看
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$g filelist.f
ps:gf
可进入相应的文件,ctrl+o
返回列表文件
创建Makefile
文件
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$touch Makefile
Makefile
文件内容如下:
comp : clean vcs
#-------------------------------------------
vcs :
vcs \
-f filelist.f \
-timescale=1ns/1ps \
-full64 -R +vc +v2k -sverilog -debug_access+all\
| tee vcs.log
#-------------------------------------------
verdi :
verdi -f filelist.f -ssf tb.fsdb &
#-------------------------------------------
clean :
rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd
4、仿真结果
用vcs
跑仿真
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$make vcs
用verdi
查看仿真结果
[ICer@IC_EDA /home/ICer/digital_ic_design/muxtwo]$make verdi