网站重新上线,多谢朋友们的关心
Oct
26
1、ModelSim网站
www.model.com
2、ModelSim文档:User Manual, Tutoral等
http://www.model.com/resources/resources_manuals_designer.asp
3、ModelSim Demo
http://www.model.com/resources/resources_demos.asp
4、各种小技巧-Tech Notes
http://www.model.com/support/technotes_select.asp
ModelSim的Demo很好,采用Flash互动,讲得也很清楚。
www.model.com
2、ModelSim文档:User Manual, Tutoral等
http://www.model.com/resources/resources_manuals_designer.asp
3、ModelSim Demo
http://www.model.com/resources/resources_demos.asp
4、各种小技巧-Tech Notes
http://www.model.com/support/technotes_select.asp
ModelSim的Demo很好,采用Flash互动,讲得也很清楚。
Oct
24
Xapp199 - Writing Efficient Testbenches 是一篇挺老的Application Note了,我以前也读过,不过今天再读还是有所收获的。这篇文档还是讲了不少内容的。
Aug
28
Situation: 我们平时使用Verilog进行状态机编码时,通常使用parameter对状态名进行定义,这样写Case语句的时候就不会对这一串10摸不着头脑。可是通常这样做的话,在Modelsim里看到的还是一串10,使排错非常困难,特别是在用OneHot编码的时候,就看到一串0中间的一个1 #_# 简直要疯掉。
Question: 我们可不可以像VHDL一样,在仿真的时候看到状态名字,而不仅仅是状态编码呢?
答案当然是可以的拉,事在人为嘛!
Solution1:
另外定义一个reg: state_name,长度根据状态名称长度而改变(状态名称字符数x8);
在每个状态执行的语句中加入state_name <= "IDLE"; 类似的一句语句;
仿真时添加state_name进行观察,使用ASCII Radix。
Solution2:
使用如下语句:
`ifdef SIMULATION
parameter S_idle = "idle ";
parameter S_decode = "decode";
parameter S_start = "start ";
parameter S_wait = "wait ";
parameter state_wid_msb = 47;
`else
parameter S_idle = 4'b0001;
parameter S_decode = 4'b0010;
parameter S_start = 4'b0100;
parameter S_wait = 4'b1000;
parameter state_wid_msb = 3;
`endif
reg [state_wid_msb:0] state;
只要在仿真的时候`define SIMULATION就可以了。一样用ASCII Radix查看。
参考资料:
Google Group
Question: 我们可不可以像VHDL一样,在仿真的时候看到状态名字,而不仅仅是状态编码呢?
答案当然是可以的拉,事在人为嘛!
Solution1:
另外定义一个reg: state_name,长度根据状态名称长度而改变(状态名称字符数x8);
在每个状态执行的语句中加入state_name <= "IDLE"; 类似的一句语句;
仿真时添加state_name进行观察,使用ASCII Radix。
Solution2:
使用如下语句:
`ifdef SIMULATION
parameter S_idle = "idle ";
parameter S_decode = "decode";
parameter S_start = "start ";
parameter S_wait = "wait ";
parameter state_wid_msb = 47;
`else
parameter S_idle = 4'b0001;
parameter S_decode = 4'b0010;
parameter S_start = 4'b0100;
parameter S_wait = 4'b1000;
parameter state_wid_msb = 3;
`endif
reg [state_wid_msb:0] state;
只要在仿真的时候`define SIMULATION就可以了。一样用ASCII Radix查看。
参考资料:
Google Group
Jul
31
在XPower中如果可以提供描述翻转率的VCD文件,就可以得到FPGA的动态功耗
生成VCD文件有这几种方法:
1、使用ISE Project Navigator
2、在Testbench中添加属性
1、使用ISE Project Navigator
设定仿真使用Xilinx ISIM或者Modelsim或者其他仿真工具
在Testbench右键属性(Post PAR属性)--> Generate VCD打勾
使用结果:用ISIM生成正常,可是用ModelSim XE 6.0d只能出来一个VCD的头,实质内容没有出来
2、在Testbench中添加属性
Verilog:
initial begin
$dumpfile ("invchn26.vcd"); // Change filename as appropriate.
$dumpvars(1, t.uut); //t是testbench 的module name
end
VHDL:
vcd file my_design.vcd
vcd add testbench/uut/*
使用结果:Verilog正常,VHDL还没用
生成VCD文件有这几种方法:
1、使用ISE Project Navigator
2、在Testbench中添加属性
1、使用ISE Project Navigator
设定仿真使用Xilinx ISIM或者Modelsim或者其他仿真工具
在Testbench右键属性(Post PAR属性)--> Generate VCD打勾
使用结果:用ISIM生成正常,可是用ModelSim XE 6.0d只能出来一个VCD的头,实质内容没有出来
2、在Testbench中添加属性
Verilog:
initial begin
$dumpfile ("invchn26.vcd"); // Change filename as appropriate.
$dumpvars(1, t.uut); //t是testbench 的module name
end
VHDL:
vcd file my_design.vcd
vcd add testbench/uut/*
使用结果:Verilog正常,VHDL还没用








