当前位置:首页 > 技术学院 > 技术前线
[导读]Modelsim仿真没有想象的那么难,我一直没想着仔细研究一下,本来想着请教别人的,但是最后还是决定找资料,自己好好做一下。

我原先都是调试C语言程序,然后直接用硬件验证的,没有注意到仿真的重要性。在FPGA上面,仿真占了很大的一部分。在我们实际验证之前,就采用仿真来排除可能出现的错误,能够节省很多时间。仿真过程中也可以让我们更加深入的思考所设计的系统。因此Modelsim就显得很重要了。

最初都是使用quartus进行直接调用的,对modelsim的整个操作流程还是不了解,后来直接用modelsim调用编写的程序。

Modelsim也可以编译verilog的程序的,我们可以建立一个空的工程进行编译的。我们这里使用的方法是在quartus里面进行编译。这两种方法我都测试过,都是可以的。

下面现在列出具体的方法。

// 注意一点,最后我们仿真需要两个文件,一个是我们的源文件.V文件,另外一个就是我们的testbench文件。我们最后仿真的时候,其实仿真的是testbench文件。

(1),使用quartus编写源文件,此处以38译码器为例。

/*

decode38

*/

module decode_38(keyin,led,clk);

input clk;

input [2:0]keyin;

output [7:0]led;

reg [2:0]read_key;

reg [7:0]led;

always@(keyin)

begin

read_key=keyin;

case(read_key)

3'd0: led=8'b1111_1110;

3'd1: led=8'b1111_1101;

3'd2: led=8'b1111_1011;

3'd3: led=8'b1111_0111;

3'd4: led=8'b1110_1111;

3'd5: led=8'b1101_1111;

3'd6: led=8'b1011_1111;

3'd7: led=8'b0111_1111;

default:

led=8'b1111_1111;

endcase

end

endmodule

(2)编写testbench文件

`timescale 1 ns/ 1 ps

module decode_38_vlg_tst();

reg clk;

reg [2:0] keyin;

// wires

wire [7:0] led;

reg [3:0]invect;

initial

begin

#10 clk=1'b0;

forever

#10 clk=~clk;

end

initial

begin

for(invect=0;invect<8;invect=invect+1)

begin

keyin=invect[3:0];

#10 $display($time," clk=%b,keyin=%b,led=%b",clk,keyin,led);

end

end

initial

begin

#120 $stop;

end

decode_38 i1 (

// port map - connection between master ports and signals/registers

.clk(clk),

.keyin(keyin),

.led(led)

);

endmodule

(3)启动modelsim ,File->New->Project,建立工程

(4)保存新建的工程

(5)添加项目到建立的工程之中。此处选择Add Existing File(因为要仿真的文件我们已经编译好了)

(6)选择编译好的文件。需要加载我们的.V文件,以及testbench文件,一次可以加载多个文件的。

(7)在“Project”选项卡中显示刚才加载的文件,此时Status状态栏显示“?”,因为我们现在还没有对其进行编译呢

(8)选择菜单栏Complie进行全编译

(9)打开Library选项卡中的work库,找到我们加载的两个文件(.v .vt)。

(10)选中testbench文件,并右击鼠标,准备simulate

(11)右击我们的testbench文件,选中Add->To Wave-> All items in region

(12)设置仿真时间,我们这里设置10ms

(13)在最下面的命令行窗口输入”run”,或者选中Simulate->Run-All

(14)得到仿真结果

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

● 颠覆性的专用软硬件加速平台;利用GPU和CPU计算以及专有软件算法,提高准确度、速度和规模的同时,带来高达100倍的设计效率提升; ● 与传统HPC相比,支持GPU-resident模式的求解器可将仿真能效显著提高2...

关键字: AI 仿真

● 热、应力和电子散热设计同步分析,让设计人员可以无缝利用ECAD和MCAD对机电系统进行多物理场仿真; ● 融合FEM和CFD引擎,应对各种热完整性挑战——从芯片到封装,从电路板到完整的电子系统; ● Celsius...

关键字: AI 仿真

具有高采样率的泰克任意波形发生器(AWG)是功能多样且强大的仪器,可以提高脉冲激光实验的质量和效率,为以前所未有的精度和灵活性创建和操作光脉冲提供了多种可能性。

关键字: 仿真 测试测量

● 四态硬件仿真应用可加速需要X态传播的仿真任务; ● 实数建模应用可加速混合信号设计软件仿真; ● 动态功耗分析应用可将复杂SoC的功耗分析任务加快5倍。

关键字: 仿真 SoC

目前,中国市场HiL技术主要应用于汽车、航空航天、国防、能源、电力电子等产业,2016年-2028年市场规模复合增长率达18.5%,预计2028年中国HiL模拟行业市场规模达到273亿元,其中尤以汽车行业HiL应用市场规...

关键字: 仿真 汽车电子

在今年的泰克创新论坛上,我与新思科技(Synopsys)的Madhumita Sanyal和安立公司(Anritsu)的Hiroshi Goto一起讨论了最新PCIe版本面临的挑战,以及PCIe 7.0可能面临的挑战。

关键字: 仿真

近日,第11届EEVIA年度中国硬科技媒体论坛暨产业链研创趋势展望研讨会在深圳召开,上海合见工业软件集团产品工程副总裁孙晓阳在会上发布了主题为“把握芯片设计关键核心,助力国产EDA新格局”的演讲。

关键字: 芯片设计 仿真 验证 chiplet 合见工软 IP

COMSOL 电池主题日系列活动邀请了多位行业专家,分享多物理场仿真在电池行业中的应用和优势,共同探讨电池及电化学储能技术未来发展的无限可能。 上海2023年9月21日 /美通社/ -- 2023年9月20日,全球领先...

关键字: 仿真 电池技术 COMSOL 电化学

四家在HiL仿真行业内的“先行者”,凭借其先发优势和核心技术,已经稳占市场主导地位,成为了业界公认的“四大龙头”。他们分别有什么特点?

关键字: 仿真 测试测量

VHDL (VHSIC Hardware Description Language),是一种硬件描述语言,可以用于描述电路的结构、功能和行为等,并进行仿真和验证。VHDL具有规范性、综合性和模拟性等特点,已被广泛应用于数...

关键字: 单片机 EDA技术 仿真
关闭
关闭