Menu Close

Quartus II 基于图形设计输入自顶向下的设计方法

在FPGA EDA综合工具中,Quartus II的图形设计界面是非常友好的,无论是早期MAX+PLUSS II还是现在的Quartus Prime Lite版本始终保留了非常好的图形设计界面用户体验也非常好,目前Intel公司接手Altera后继续维护这个功能,而且有所加强。而自顶向下的设计方法在Quartus的图形输入的的支持下更是特点突出,首先由于图形的支持,整个设计从上到下非常清晰;其次便于支持清晰的设计文档。下面还是以8位全加器为例介绍图形设计输入的自顶向下的设计方法。

  • 新建工程
    1. 工程名 tdfadd8(td–top down)
    2. 顶层实体名称 tdfadd8
    3. 顶层实体文件 tdfadd8.bdf
  • 设计顶层文件
    1. 新建文件,文件类型为block design file (*.bdf),
    2. 工具栏介绍
  • 为了方便输入,先介绍工具栏将会使用的工具,如图1,%title插图%num

图1

    1. 注释文本:在图形设计界面添加注释说明,但不能作为网络标号使用。
    2. 输入器件:选择后打开器件输入对话框,如上节内容可以添加逻辑器件以及底层设计形成的符号等。
    3. 输入输出:选择后打开器件输入对话框,如上节内容可以添加输入、输出及双向口等。
    4. 块: 在图形编辑界面中,块是设计内容的载体。在自顶向下的设计中是主要底层设计内容的承载者。
    5. 垂直结点工具:主要用来实现器件之间的水平或垂直连线。
    6. 垂直总线工具:用来画总线,如果总线需要分支,应用net字符实现,见上节内容
    7. 管道工具:用来实现块与输入、输出之间的连接。

%title插图%num

图2

  • 右键单击块,选中Properties,如图3

%title插图%num

图3

  • 单击Properties 后,弹出图4对话框。在图4的对话框中有4个标签,分别为General, I/Os, Parameter ,Format.
    • General(通用),可以block(块)的名称和例化名称,如图4中,块名为tdfadd4,例化名为inst。切换到I/Os标签进行设置。

%title插图%num

 

图4

    • 在I/Os标签对应的对话框中,编辑输入、输出如图5, 完成后切换到Parameter标签。

%title插图%num

图5

    1. 在图6中编辑Parameters,编辑完成后切换到Format标签。
    2. name–> WIDTH,
    3. Value–>4,
    4. Type–>Unsigned Integer ,
    5. Description–> used for defining vector width

%title插图%num 图6

  • 在Format标签中,主要用来设置块的颜色属性,如填充色,线的颜色,文本的颜色等,如图7。 设置完成后点击OK按钮,返回图形编辑界面。此时可以看到在块的右上角出现了Parameters的编辑框。

%title插图%num

图7

  • 复制刚才编辑的块,粘贴形成两个编辑编辑快。在图形编辑界面添加输入、输出,并用管道(conduit)将输入、输出与块连接在一起。如图8.

%title插图%num

图8

  • 编辑块与管道映射

如图8中,在框内的输入脚a[WIDTH-1..0], 如果WIDTH=4, 就变成a[3..0],那么如何与外部的a[7..4]对应起来的呢?这就要用到管道映射。

块与管道映射,实际就是将外部的输入、输出端口与块(block)内部的输入、输出映射(mapping)起来。双击图9红框内的左右箭头编辑映射。

%title插图%num

图9

双击图9后在弹出的对话框内编辑管道映射,如图10

%title插图%num

图10

  • 在General标签的对话框内,Type: 选择input。
  • 在Mapping对话框中I/O on Block 选择ci,在Signal on conduit内选择ci(输入端口的名称与conduit的网络名称相同),如图11。mapping中a[7..4]如何映射的呢?
  • 双击a[7..4]对应的Mapping对话框,如图12

 

%title插图%num

图11

 

在图12对话框中,a[WIDTH-1..0] 与a[7..4] 映射。

%title插图%num

图12

  • 按照上面介绍的方法,修改所有的输入、输出(管道)与block内的I/O进行映射,完成后的界面如图13,

%title插图%num

图13

  • 创建底层实体文件

从图13可以看出,顶层文件8位全加器已经设计完成,有两个4位全加器级联而成,4位全加器的接口也定义和映射完成。但底层的实体文件如何处理?看如下步骤。

  • 鼠标右键点击块(两个block中的任意一个,如图14,选择Create Design File from Selected Block…,打开图15对话框。

%title插图%num

图14

在图15的对话框中可以选择4种类型,这里我们选择Verilog,文件名保持和block的名称一致,这里为tdfadd4.v。点击OK,就会打开底层文件(由Quartus II 自动生成),如图16,

%title插图%num

图15

从图16可以看出,Quartus已经帮助我们完成基本结构和输入输出端口,惟一不足的是Verilog版本不是2001版的。

%title插图%num

图16

  • 修改源文件实现4位全加器的功能,并存储。
module tdfadd4
(
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
ci, a, b, sum, co
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
);


// Port Declaration


// {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!


parameter WIDTH = "4";


input ci;
input [WIDTH-1:0] a;
input [WIDTH-1:0] b;
output [WIDTH-1:0] sum;
output co;


// {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!


assign {co, sum} = a + b + ci;


endmodule

 

  • 将顶层文件存储为tdfadd8.bdf,编译,评估。
  • 写出testbench文件,进行设计测试。如果在modelsim下仿真一定要将tdfadd8.bdf转成tdfadd8.v.

练习:

  1.  在图15中选择Schematic, 用图形输入法完成底层文件设计。
  2. 完成激励仿真文件设计,完成仿真。

 

Posted in FPGA, FPGA, Quartus II, Verilog, Verilog, 开发工具, 教材与教案, 文章
0 0 投票数
Article Rating
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

相关链接