modelsim仿真教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本教程使用软件的下载链接如下:
/download/quartus_modelsim_setup.zip
Molelsim仿真使用教程
——利用quartus生成网表文件Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件,接下来以一个简单的例子介绍modelsim的基本使用方法。
第一步:建立工程,该过程与quartus使用的教程大部分是一样的,区别如下:
在simluation选项中选择MoselSim-Altera作为仿真工具,fomat中的选项根据编程语言进行选择,本教程以VHDL为例。
第三方的仿真工具
所以在此选择
第二步:新建文件:
新建一个源文件,保存为led.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity led is
port(led_out : out std_logic_vector(7 downto 0);
clk : in std_logic;
rst_n : in std_logic
);
end led;
architecture behavior of led is
signal light : std_logic_vector (7 downto 0);
begin
process(clk,rst_n)
begin
if(rst_n = '0')then
light <= "00000010";
elsif(clk'event and clk ='1' )then
if(light = "10000000") then
light <= "00000001";
else
light <= light(6 downto 0)& '0';
end if;
end if;
end process;
led_out <= light;
end behavior;
新建一个testbench 文件,保存为testbench.vhd(testbench是电路的激励文件,在后面章节会详细介绍,这里仅仅作为软件的演示不具体介绍testbench的设计过程):
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
entity testbench is
end testbench;
architecture behavior of testbench is
component led
port ( clk : in std_logic;
rst_n : in std_logic;
led_out : out std_logic_vector(7 downto 0)
);
end component;
--input signal
signal clk : std_logic := '0' ;
signal rst_n : std_logic :='0';
--output signal
signal led_out : std_logic_vector (7 downto 0);
--contstant
constant clk_period : time := 20ns;
begin
cp1 : led port map (
clk =>clk,
rst_n => rst_n,
led_out => led_out );
clk_gen : process
begin
clk <= '1';
wait for clk_period/2;
clk <= '0';
wait for clk_period/2;
end process;
rst : process
begin
rst_n <= '0';
wait for 20ns;
rst_n <= '1';
wait for 200ns;
wait;
end process;
end;
然后对顶层模块led.vhd进行检查语法和编译,在编译的窗口出现
EDA Netlist Writer 是表示第三方仿真工具所需要用到的网表文件(Netlist)成功生成。
在信息栏中会出现以下信息:
led.vho 就是网表文件,led_vhd.sdo是时序仿真时候的时序文件(里面有线延时,寄存
器延时等信息)
网表文件和时序文件都已经生成完成,接下来开始使用modelsim进行仿真。
第三步:利用modelsim做仿真:
1,在上一个步骤quartusii所建立的工程所保存的硬盘位置目录中多出一个文件夹:
仿真需要的文件就在里面
2,打开modelsim,新建工程(file>new>project),选择好保存路径和工作名称,点击OK:
编译成功之后综合布
线都成功
当选择第三方工具的时候就会产生该
项目,表示生成了其他软件所需要用
到的vho和sdo文件
建立Modelsim仿真工程。