当前位置:   article > 正文

Modelsim中do文件的使用、读写文件数据_modelsim .do文件运行

modelsim .do文件运行

Modelsim 中do文件中简单的命令

Modelsim 使用do文件进行仿真的编译,比直接的操作软件有有效的多,所以该文章用于整理Modelsim常用的do文件的命令,命令都是一些最基本的命令。在do文件中注释使用#不是使用//

vlib work 
vmap work work     //-del 删除相应的文件库
  • 1
  • 2

建立work 逻辑库,运行后在指定的文件下会找到work文件,同时将逻辑库work映射到相应的work文件中。

project compileall  //编译全部的文件
vlog "./*.v"
vcom -check_synthesis .././*.v  # 检查文件的可以综合性
  • 1
  • 2
  • 3

直接读取当前文件下的代码文件以及仿真文件,不需要手动添加。但是在使用时要注意设计文件以及仿真文件处于哪一级的目录下面,否则仿真时找不到文件的路径会报错。在调用IP核进行仿真,需要找到相应的文件库一同添加。

vsim -voptargs= +acc -L work.top
vsim -t -gui -novopt
  • 1
  • 2

进行仿真优化。 -L是直接连接相应的函数库,例如:vsim -voptargs = +acc work.tb_top 或者vsim -L altera_mf NorTestBench 直接连接相库
以上是对工程以及文件的配置,下面是对波形的设定

view wave
view structure
view signals
view source 
  • 1
  • 2
  • 3
  • 4

添加相应的窗口进行显示

add wave -divider {tb_top}
add wave ../../../*.v
-radix hexadecimal 十六进制显示 - radix unsigned 十进制无符号数的显示
  • 1
  • 2
  • 3

添加相关的波形,显示指定例化的模块型号,同时也可以指定信号进行显示。
下面还有一些简单的运行命令:

run -time  //表示运行的时间 -all 表示全部运行
restart   //对仿真进行复位
.main clear  //清空tcl编辑面板
Force -repeat 50 clk 0 0 1 25 //激励时钟周期
Force rst_n  //指定信号并对指定的信号进行赋值
  • 1
  • 2
  • 3
  • 4
  • 5

常用的一个仿真文件

quit sim 

#create project
vlib work 
vmap work work  

#add to comiple design file
vlog  "../../sim/*.v"
vlog  ".././rtl/*.v"
vlog  "../../lib/*.v"

#simlation
vsim voptargs= +acc work.tb_top

#set the window types
view wave 
view structure 
view signals

#add wave
add wave -divider {tb_top}
add wave -radix hexadecimal tb_top/* 

.main clear 
run  -all #run -time

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

上面是一个简单的运行例程,在使用仿真时可以在Transcript界面指定到运行的文件下:cd 文件的路径,在文件路径下后直接可以运行 do run.do文件。run.do 是自己的书写的,在运行时注意自己书写的名字。

Modelsim读取文件中的数据(只是做文件中数据的读取)

仿真代码:

`timescale 1ns/1ns 

module test;

//define   signals
reg Clock ;
reg rst_n;
reg Mpi_en;
reg  [7:0]	Data_out;
reg	 [7:0]	Data_in	;
tri  [7:0]  Mpi_data;
reg  [7:0]  DataSource [0:47] ;
reg  [5:0]	Addr	;

parameter  CLK_PERIOD = 20;
integer Write_Out_File;


//----------------
assign Mpi_data = (Mpi_en) ? Data_out :8'bz;
//generate clock
initial begin
	Clock = 0;
	forever begin
	 # (CLK_PERIOD /2) Clock = ~Clock ;
	end
end

//generate rst_n
initial begin
	rst_n = 1'b0 ;
	# (CLK_PERIOD * 10)
	rst_n = 1'b1;
end


//------main simlation
initial 
begin :ACCESS
	integer i;
	Mpi_en = 1'b0;
	Addr = 0;
	Data_out = 0;
	$readmemh("Read_In_File.txt",DataSource);
	Write_Out_File = $fopen("Write_Out_File.txt");
	#200;
	for ( i=6'b101111;i>= 0;i=i-1)
		begin
			# CLK_PERIOD;
			Data_out = DataSource[i] ;
			Addr 	 = i;
			# (CLK_PERIOD*2);
			$display("Addr :%h -> DATAwrite :%h",Addr,Data_out);
			# (CLK_PERIOD);
			Mpi_en 	= 1'b1;
			# (CLK_PERIOD);
			Data_in = Mpi_data;
			$fdisplay(Write_Out_File,"@%h\n%h",Addr,Data_in); 
			$display("Addr :%h -> DATARead :%h",Addr,Data_in);
			$display("----------------------------");
			# (CLK_PERIOD);
			Addr 	= 0;
			Mpi_en 	= 0;
		end
	$display ("Simulation Finished!"); 
	$fclose (Write_Out_File );   
	$stop;
end

endmodule 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70

上面的代码读取文本文件中的数据,然后在写入到另一个文本文件中。
在运行modelsim 软件时,直接运行run.do文件就可以自动仿真。do文件十分的简单,可以根据本文上面的命令进行理解。在运行do文件时路径需要在你书写verilog代码一样的路径。
do文件的代码:

quit -sim
.main clear

vlib work 
vmap work work 

vlog  "test.v"

vsim -voptargs=+acc work.test
view wave 
view signals

add wave -divider {test}
add wave  test/*
run -all
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

小白的学习记录,大佬请绕路

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/331037
推荐阅读
相关标签
  

闽ICP备14008679号