首页 > 解决方案 > 如何使用 Vivado 原理图创建缓冲门?

问题描述

我是第一次使用 Vivado 学习 Verilog。我正在尝试用它创建简单的缓冲门。

这是我尝试过的代码。第一个是名为“inv.v”的设计源文件。

`timescale 1ns / 1ps

module inv(
    input a,
    output x
    );
    
IBUF buffer(x, a);

endmodule

这段代码确实创建了缓冲门,但它创建了其中的 2 个。

在此处输入图像描述

我也试过下面的代码。

`timescale 1ns / 1ps

module inv(
    input a,
    output x
    );
    
assign x = a;

endmodule

但是,这不会产生任何结果。我想要的是只创建一个缓冲门,如上图所示。有谁知道怎么做?

ps 我使用的是 Vivado 2017.3 HLx 版。

标签: verilogsystem-verilogvivado

解决方案


有关 ibuf 和 obuf 原语的更多信息,请参阅 7 系列库指南。 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug953-vivado-7series-libraries.pdf 这是链接中文件第 341 页左右的引用。

“一般来说,IBUF 是由综合工具推断设计的顶级输入端口的,因此没有必要在源代码中指定它们。但是,如果需要,可以通过从适当的库指南 HDL 模板并将其放入代码的顶层。

您的第一个示例是库指南中提到的实例化。对于您的第二个示例,没有组件实例,并且 Vivado 确定不需要缓冲区。


推荐阅读