ModuleSim SE 快速入门
上一篇 / 下一篇 2006-09-06 09:41:30 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Backup
本文介绍ModelSim SE的最基本用法EDA中国门户网站Oo-KF7f6sY3W
当你安装完ModelSim SE之后,可以将你的ModelSim SE的起始路径设置为你的工作目录(如e:\verilog),具体方法是在右键单击执行文件ModelSim SE的图标再点击属性栏,就可以看到ModelSim SE的起始位置,改为你的工作目录就可。或者也可以在se里面更改工作目录,即使用file-change directory...菜单EDA中国门户网站?Jn6[8^d9Nb%w*Js
学习verilog语言也必须学习写它的testbench文件,即测试文件。建议从最开始就学习写,写一个程序写一个testbench。ModelSim SE仿真用的文件也就是testbench文件。Testbench文件可以在仿真中发现你的逻辑错误,对于以后作较大的程序更适用。而避免让你在实际调试中的出现很多的问题而无头绪。EDA中国门户网站1Q[]'c
C4IG
好,现在假设你在e:\verilog目录下有一个\div目录,该目录下有两个文件div.v和tdiv.v为一个分频时序描述文件和它的testbench文件。文件内容如下:
e:\verilog\div\div.vEDA中国门户网站${w5R9`K5aJf
module div(clk_i,clk_o,reset);EDA中国门户网站"YV3Id5d tM|3W
parameter DIV_N = 4;EDA中国门户网站?:v?,Z*f }q1tu5F.F
input clk_i;
y_\J8j0input reset;
L-pkEj*Y0[!w_0output clk_o;EDA中国门户网站!?,LV ?P6[)k^
reg clk_o;
"F"?d#P(^!Mw J/k0integer count;
always @ (negedge reset or posedge clk_i)
+iqO.C(]7G^#q#^0begin EDA中国门户网站Q_c[U
if(!reset) EDA中国门户网站Z_-sO,z/SR
count <= 0;EDA中国门户网站6VX-iP
hnJ
else
*G G(R/pR8B#cSp0 if(count == 3)EDA中国门户网站A8W'@o%\yl
count <= 0;EDA中国门户网站*j9}N}J
elseEDA中国门户网站~!w(yT;`-c
count <= count + 1; EDA中国门户网站7yf/ppsv-lN1k4C
end
always @ (negedge reset or posedge clk_i)
;Z1BZx$@NlC0begin
/t)_O^^7N4cND(I0 if(!reset)
D-ag#U"?e0 clk_o <= 0;
g&c*J_Pn!B'u
E0 else
"h?:V k/})Z9`0 beginEDA中国门户网站 T5A2Nh)L1wv
if(count <= (DIV_N/2 - 1))EDA中国门户网站:h^!am _v
clk_o <= 0;EDA中国门户网站'Z.U_
W*o\5B
elseEDA中国门户网站1}t7UINjq
clk_o <= 1;
"OO8SF5i-dO&H0 endEDA中国门户网站RQ/~x/Dx,b
EDA中国门户网站5O B
cW8n:?/F+s [/m
endEDA中国门户网站o4E;O|Q3hq\.x.O2GpP"f
endmodule
e:\verilog\div\tdiv.vEDA中国门户网站0e+x4v"m)J9F5f
module testdiv;
.G;gg2A-S-_0reg clk_i;
u&J_0V6g
`&A+m;j)ZJ_0reg reset;EDA中国门户网站+SI5\(KKG
N:E*q
wire clk_o;
always #50 clk_i = ~clk_i;
initial
9l(vPz0_f1_8K0beginEDA中国门户网站o5tqO#Ic
#0 reset = 0;clk_i = 0;
%@cz8Nyt8k0 #100 reset = 1;
)B&H