0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将RTL模块添加到Block Design的步骤

FPGA技术江湖 来源:FPGA技术江湖 2023-06-11 16:27 次阅读

绪论

使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design中,一种方式是通过自定义IP,但是一旦设计的文件有问题就需要重新修改,同时需要控制接口时候还需要在AXI总线模板基础上进行修改,再同时繁琐的步骤也让人“望而却步”。下面介绍一种简单的方式。

4d5470fc-0830-11ee-962d-dac502259ad0.png

我目前使用的是 Vivado 2019.1、2020.2,但据我所知,此功能几乎适用于 Vivado 的所有版本(如果不正确,请随时在后台更正)。

创建 Vivado 项目

为了开始这个例子,我创建了一个基于 Zynq 的新 Vivado 项目(这只是我的例子,但这个项目的内容并不特定于任何特定的 FPGA 开发板),同时这个项目中包括一个通过AXI-Lite控制的自定义RTL。

添加设计文件并编写自定义 RTL

不用于仿真目的的自定义 RTL(即测试文件)都被视为 Vivado 中的设计源。使用 Flow Navigator 中的Add Sources选项并选择Add or create design sources ,然后单击 Next。

4dc46434-0830-11ee-962d-dac502259ad0.png4e07b45a-0830-11ee-962d-dac502259ad0.png

我们创建一个名为D_flipflop的新文件并添加了以下逻辑:

moduleD_flipflop(
inputclk,
inputreset,
inputd_in,
outputregq_out
);

always@(posedgeclk)
begin
if(reset==1'b1)
begin
q_out<= 1'b0;
                end
            else 
                begin
                    q_out <= d_in;
                end
        end
endmodule

创建Block Design

使用 Flow Navigator 窗口中的Create Block Design选项,将新的Block Design添加到项目中。

4e7b264c-0830-11ee-962d-dac502259ad0.png

将 Zynq 处理系统 IP 块添加到设计中,并运行自动设置或者自动连线。

4ea12c20-0830-11ee-962d-dac502259ad0.png

将 RTL 模块添加到Block Design

要添加我们在上一步中创建的 D 触发器的 RTL 模块,右键单击 Diagram 窗口空白处的任意位置,然后选择Add Module...选项。

4ea12c20-0830-11ee-962d-dac502259ad0.png

Vivado 将自动显示它在当前项目中找到的所有有效 RTL 模块。由于写入或导入到当前项目中的模块是我们刚刚设计的 D 触发器,因此它是本例中的唯一选项。

4f5e72d0-0830-11ee-962d-dac502259ad0.png

为了给触发器提供源,我添加了一个 AXI GPIO IP ,其中第一个通道作为输出,第二个通道作为输入。自动连接即可。

4f6bb116-0830-11ee-962d-dac502259ad0.png

为 AXI GPIO 模块运行自动连接后,将输出 GPIO 通道连接到触发器的 d_in,将触发器的 q_out 连接到输入 GPIO 通道。

4fa2c354-0830-11ee-962d-dac502259ad0.png

全部连接好后,点击那个勾勾进行验证。

501479a4-0830-11ee-962d-dac502259ad0.png

Block Design完成后,为Block Design生成顶层文件。

502c25f4-0830-11ee-962d-dac502259ad0.png

完成后可以看下整个项目的文件层次结构。

509f987c-0830-11ee-962d-dac502259ad0.png

就是这样,OVER~





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59064
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60404
  • GPIO
    +关注

    关注

    16

    文章

    1133

    浏览量

    50570
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65101
  • FPGA开发板
    +关注

    关注

    10

    文章

    119

    浏览量

    31325

原文标题:将 RTL 模块添加到Block Design

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    可以块设计添加到库中吗?

    嗨,是否有可能将块设计添加到工作库中,我可以使用“entity work.bs_name”对其进行实例化?我可以使用库的vhdl组件,使用ips和生成块设计的包装器来完成此操作,但不能使用块设计本身
    发表于 04-18 07:00

    在块设计中添加模块引用期间出错

    嗨,我尝试模块引用添加到块设计时发现错误。我只是一个rtl添加到项目中,右键单击
    发表于 04-24 07:42

    GPIB仪器添加到PC控制3070

    GPIB仪器添加到PC控制3070 [86KB PDF]
    发表于 07-24 08:28

    3D模型添加到PCB库中的方法

    下面我们来讲讲具体怎么3D模型添加到PCB库中。操作步骤如下:
    发表于 07-24 08:20

    如何使用vhdl这种东西添加到TEMAC上?

    捕获它。到目前为止它正在工作我想将UDP / IP堆栈添加到该MAC,任何人都可以建议我如何使用vhdl这种东西添加到TEMAC上。请尽快建议我。此致,Pavan Patil
    发表于 03-24 08:01

    如何添加到设计中并使用Tcl脚本编译?

    .vhd&amp;的路径。它是正确的。谁能告诉我如何添加到设计中并使用Tcl脚本编译它们提前致谢问候Sushma Huddar
    发表于 04-16 10:15

    新库添加到Petalinux rootfs的最简单方法是什么

    嗨,新库添加到Petalinux rootfs的最简单方法是什么?1>如何预编译的库添加到rootfs,这将在petalinux-config -c rootfs中检测到2>如何
    发表于 05-22 08:32

    怎样PMSM模块添加到Simulink中

    如何去添加PMSM模块?怎样PMSM模块添加到Simulink中?
    发表于 09-23 09:16

    如何测试主板添加到Fuego

    http://fuegotest.org/wiki/Adding_a_board概述:要将自己的测试主板添加到Fuego,需要执行以下五个主要步骤:确保可以通过ssh,串口线或其他连接方式访问目标
    发表于 12-17 07:37

    为什么无法DMA添加到SDMMC?

    你好!我有最新版本的 CubeMX我尝试 DMA 添加到 SDMMC1但我看不到“DMA”选项表。如何添加 DMA?
    发表于 01-13 06:15

    Yocto S32G添加新层,如何添加到图像?

    ,所以我认为它需要一些步骤,我应该怎么做才能将图层添加到图像中? 我上传 meta-mylayer 并构建配置。
    发表于 04-25 09:59

    S7-1200将模块添加到组态的方法

     使用硬件目录将模块添加到 CPU 。 有三种类型的模块
    的头像 发表于 03-11 10:30 4490次阅读

    将LED添加到十字绣图片

    电子发烧友网站提供《将LED添加到十字绣图片.zip》资料免费下载
    发表于 02-09 10:12 0次下载
    将LED<b class='flag-5'>添加到</b>十字绣图片

    使用Vivado Block Design设计解决项目继承性问题

    使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到
    的头像 发表于 02-13 11:02 2129次阅读

    西门子博途S7-1200:将模块添加到机架的方法

    在网络视图中将设备从硬件目录添加到组态后,即可向设备中添加模块
    的头像 发表于 09-04 15:22 3967次阅读
    西门子博途S7-1200:将<b class='flag-5'>模块</b><b class='flag-5'>添加到</b>机架的方法