赞
踩
本文讲述使用HDLBits进行FPGA代码在线综合仿真以及时序图生成,用于验证自己的设计。
学习完本教程后,通过每次查看"仿真必备要素总结"小节即可轻松的构建自己的仿真了!
HDLBits 最被大家熟知的是作为一款网页版的 Verilog代码编辑仿真验证平台,这个平台是国外的一家开源FPGA学习网站,通过“https://hdlbits.01xz.net/wiki/Main_Page”地址进入网页,在该网页上可以进行Verilog代码的编写、综合,而且最后还能够仿真出波形来验证设计代码的正确性,该验证平台是基于Icarus Verilog(简称iVerilog,比较著名的开源HDL仿真工具,也有对应的安装版本)的,让你随时随地只需登录网页就能够享受Verilog编程仿真的乐趣!
它是一个很适合Verilog初学者快速上手的刷题网址,包含对Verilog语法、组合逻辑、时序逻辑、仿真等等练习。在网页中你的代码会通过 Altera Quartus 的综合器综合为硬件电路。你的综合电路会通过功能仿真来检查其功能是否正确。HDLBits 使用 ModelSim 同时仿真你的代码和参考解决方案,然后比较两者的输出。
更全面地,它也包含帮助您学习计算机设计基础知识的工具,其中包含了HDLBits、ASMBits、CPUlator,通过’‘https://www.01xz.net/wiki/Main_Page’‘地址进入网页。
HDLBits:在Verilog中练习数字电路设计的问题集和在线判断;
ASMBits:就像HDLBits一样,但用于练习Nios II或ARMv7汇编语言;
CPUlator:浏览器内全系统MIPS、Nios II和ARMv7模拟器和调试器。
HDLBits除了用于Verilog刷题练习外,还可以用于FPGA代码在线综合仿真以及时序图生成,验证自己的设计,允许您运行任何您想要的模拟。
在网页左上角点击Simulation下的“Run a Simulation(lcarus Verilog)”。
首先我们通过官方模板来学习如何使用该仿真功能。
官方模板代码如下:
module top_module ();
reg clk=0;
always #5 clk = ~clk; // Create clock with period=10
initial `probe_start; // Start the timing diagram
`probe(clk); // Probe signal "clk"
// A testbench
reg in=0;
initial begin
#10 in <= 1;
#10 in <= 0;
#20 in <= 1;
#20 in <= 0;
$display ("Hello world! The current time is (%0d ps)", $time);
#50 $finish; // Quit the simulation
end
invert inst1 ( .in(in) ); // Sub-modules work too.
endmodule
module invert(input in, output out);
assign out = ~in;
`probe(in); // Sub-modules can also have `probe()
`probe(out);
endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。