Menu Close

Quartus II 图形界面的设计输入方法

在FPGA EDA综合工具中,Quartus II的图形设计界面是非常友好的,无论是早期MAX+PLUS II还是现在的Quartus II 20版本始终保留了非常好的图形设计界面,用户体验也非常好。目前Intel公司接手Altera后继续维护着这个功能,而且有所加强。图形界面设计有许多优点,列举如下:

1、Quartus II图形界面输入的优点:

  • 简单易上手

只要有数字电路基础就可以上手,然后慢慢深入,是学习FPGA的最好的起点。因为在Quartus II 的安装包里几乎提供了所有逻辑器件(在primitive库里) 及小规模的集成电路器件(如74系列),这些都数字电路学习时已具备的知识,因此只要有数字电路的基础,非常容易上手。

  • 图形界面非常友好

所见即所得,连线,器件定位都非常智能,而且非常容易按使用者的需求做出整洁图形,为后续的文档编写提供了便利。

  • 支持自顶向下的设计,也支持自底向上的设计

自顶向下的设计是先从顶层图形输入开始,逐步展开延伸到底层。这种方法的优点是边设计边拆解,从概念到细节。自底向上的方法正好相反,一般是将整个工程先研究透彻,以文档等手段展示细节,然后分配到各个工程师手中进行细节设计,最后由系统工程师组合与优化。后续文章有更详细的介绍。

  • 支持混合设计输入

工程设计可以全部由图形界面设计完成,也可以混合Verilog,System Verilog,VHDL等硬件描述语言一起完成,这样的设计输入方式为大型项目多人共同参与,不同风格的设计者提供了便利。

  • 图形设计的文件仿真友好

图形设计的文件可以利用Modelsim进行仿真,与Verilog,VHDL等语言设计输入使用一样,可以利用功能强大的Modelsim仿真工具进行验证。

2.Quartus II图形设计输入步骤

下面以大家都熟悉的一位全加器的设计为例介绍Quartus II图形设计输入的步骤。

  • 一位全加器逻辑方程:

    1. a,b,ci为输入,sum,co为输出
sum = a ^ b ^ ci;

co = ci & (a ^ b) | ( a & b);
  • 新建工程

这里不再详述,参见Quartus II 新建工程部分

路径: C:/learning_course/block_design

工程名称: fadd1

顶层实体: fadd1

器件 : Cyclone 10 LP 10CL006YE144C8G

Simulation: ModelSim-Altera

 

  • 新建文件:
    • 菜单File–>new, 在弹出的界面中选 Block Diagram/Schematic File, 如图1. 点击OK按钮,将会跳出图形编辑界面,如图2,

%title插图%num

图1

    • 添加器件:在图2中双击编辑区的空白界面,跳出图3界面

%title插图%num

图2

    • 图3中的Name:输入框中输入and2(两输入端与门),或展开Libraries: ../quartus /libraries–>primitives–>logic,选择需要的逻辑器件,如and2, 右边区域显示所选择逻辑器件的符号(symbol),点击OK

%title插图%num

图3

    • 继续添加其它器件:xor,or2,input,output等,如图4,在图4中支持鼠标右键的复制黏贴功能。

%title插图%num

图4

    • 在图4中添加完所有的器件,并摆放到合适的位置,进行连线,修改输入、输出名称,完成后另存为fadd1.bdf(bdf–>block design file),如图5所示。

%title插图%num

图5

    • 编译,管脚锁定,重编译,下载,就可以在FII-PRA006或FII-PRA010上进行硬件实验验证了。
    • 仿真
      • 生成对应Verilog文件

由于Modelsim仿真时需要Verilog的库文件支持,因此可以利用Quartus II工具根据图形文件生成同名的Verilog文件,如fadd1.v,并添加到工程中。

菜单File–>Create/Update (注意一定要保持编辑区内fadd1.bdf是当前文件),如图6.

%title插图%num

图6

在图6中选择Create HDL Design file from Current File… ,跳出界面如图7,选择Verilog HDL ,点击OK.

%title插图%num

图7

      • 编写testbench文件,tb_fadd1.v
`timescale   1 ns / 1 ps
module tb_fadd1
();
 
reg a, b, ci;
 
wire sum, co;
 
initial 
begin
    a = 0;
    b = 0;
    ci = 0;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co);
 
    a = 0;
    b = 0;
    ci = 1'b1;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
 
    a = 0;
    b = 1'b1;
    ci = 0;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
 
    a = 0;
    b = 1'b1;
    ci = 1'b1;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
 
    a = 01'b1;
    b = 0;
    ci = 0;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
     
    a = 1'b1;
    b = 0;
    ci = 1'b1;
    #10 
   
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
 
    a = 1'b1;
    b = 1'b1;
    ci = 0;
    #10 
   
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
     
    a = 1'b1;
    b = 1'b1;
    ci = 1'b1;
    #10 
 
    $display("a=%b, b=%b, ci=%b, sum=%b,c0=%b", a, b, ci, sum, co); 
end
 
fadd1 fadd1_inst
(
    .a   (a),
    .b   (b),
    .ci  (ci),
    .sum (sum),
    .co  (co)
);
 
 
endmodule

 

仿真结果:

$display函数在modelsim Transcript区域打印结果

%title插图%num

图8

Modelsim的仿真波形如图9。

%title插图%num

图9

可见,图形编辑使用非常简单,简单的学习,就可以使用FPGA进行数字系统设计了。

注意:由于在该工程中由fadd1.bdf产生了同名的Verilog文件fadd1.v,而且都在工程中,在综合时会报错。处理办法如下:

  1. 仿真完成后,从工程中移除fadd1.v,然后综合。
  2. 生成不同的文件名,如fadd1_v.v,当然在testbench的例化也要修改,保持一致。

 

Posted in FPGA, FPGA, Quartus II, Verilog, Verilog, 文章

发表评论

相关链接