您的位置:

Quartus如何进行仿真

一、Quartus中仿真的基本概念

仿真是设计电路的重要步骤之一。在Quartus II软件中,仿真是通过ModelSim仿真器实现的。Quartus II软件提供两种类型的仿真:

1)Gate-Level(门级)仿真:在此仿真中,输入和输出的信号以逻辑门的状态出现,因为仿真是在这些逻辑门之间进行的。

2)RTL(Register-Transfer-Level)仿真:在此仿真中,输入和输出的信号以逻辑值的形式出现,由寄存器之间的传输决定。

二、Quartus中基于ModelSim的仿真流程

以下是基于ModelSim的仿真流程:

1)打开Quartus II软件,在工程管理器中选择需要仿真的设计。

2)在文件菜单中选择“仿真”>“创建仿真设置”,选择使用ModelSim仿真器。

3)选择仿真级别。对于不需要仿真全部设计的情况,可以选择仿真触发器级别或顶层电路级别。

4)选择仿真波形编译器。此编译器将会把仿真输出到一个或多个文件中。要实现此过程,首先要创建一个仿真文件列表,明确每个仿真参考的硬件描述语言源文件。接下来,可以编译波形文件和仿真目标代码。

5)运行仿真。Quartus II软件将会自动启动ModelSim仿真器来运行测试。

6)查看仿真结果。ModelSim仿真器将会显示波形数据,而Quartus II软件负责图形化显示波形数据。对于Quartus II软件提供的独立仿真窗口,可以调整仿真操作和完全独立的波形窗口。

三、Quartus中的仿真说明

注意以下几点:

1)在进行仿真之前,必须进行逻辑分析来确保设计中没有错误。

2)若进行门级仿真,必须已将逻辑元件和宏处理器映射到FPGA芯片上,且不能继续进行电路、时序和布局仿真。

3)若进行RTL仿真,元件必须配合时钟周期进行测试,以避免时序问题。

四、基于VHDL进行仿真的示例代码

entity JKFFD is
 Port ( J : in STD_LOGIC;
 K : in STD_LOGIC;
 Clk : in STD_LOGIC;
 Q : out STD_LOGIC;
 NQ : out STD_LOGIC);
end JKFFD;

architecture Behavioral of JKFFD is
begin
 JK: process (Clk)
    begin
     if rising_edge(clk) then
      if (J = '1' and K = '0')
       then Q <= '1'; NQ <= '0';
      elsif (J = '0' and K = '1')
       then Q <= '0'; NQ <= '1';
      elsif (J = '1' and K = '1')
       then Q <= not Q; NQ <= not(NQ);
      else Q <= Q; NQ <= NQ;
      end if;
     end if;
    end process JK;
end Behavioral;

五、基于Verilog进行仿真的示例代码

module and_gate (input a, input b, output o);
 assign o = a & b;
endmodule

module test_bench;
 reg a, b;
 wire o;
 parameter PERIOD = 10;

 and_gate and1(.a(a), .b(b), .o(o));

 initial begin
     a=0; b=0;
     #PERIOD a=0; b=1;
     #PERIOD a=1; b=0;
     #PERIOD a=1; b=1;
     #PERIOD $finish;
  end

 always #1 $display("a = %b, b = %b, c = %b", a, b, o);
endmodule

六、使用ModelSim进行仿真的示例代码

## 编译Testbench和Design
vlog testbench.v
vlog  design.v

## 综合
vopt design design_test

## 仿真
vsim -novopt design_test

## GUI展示结果
add wave -r /*
run 50ns

七、小结

Quartus II软件提供了多种在仿真方面的选项,包括门级仿真和RTL仿真。Quartus II软件与ModelSim仿真器共同工作,以对设计进行仿真。通过本篇文章,读者现在应该已经了解了如何使用Quartus II软件通过ModelSim仿真器进行硬件设计的仿真。