Vivado中模块封装成edif和dcp

  我们完成Vivado的工程后,大部分情况不能把整个工程的源代码都直接给客户或者其他工程师,需要我们先进行一些封装后再给他们,就像软件代码中会编译成dll后再Release给别人。

  在Vivado中,常用的三种封装形式有三种:

  • IP
  • edif
  • dcp

这三种封装形式在使用上都是相似的,都是我们只提供模块的接口让用户去调用。

  这篇文章我们讲一下封装成edif和dcp的步骤、区别、注意事项。

封装成edif

  1. 将需要封装的模块设置为顶层模块;
  2. 在综合选项中去掉IOBuffer,具体操作为在在综合设置窗口的Options下面最后一项More Options一栏写入-no_iobuf;

在这里插入图片描述

  1. 综合完成后,Open Synthesized Design,并在TCL Console中输入:
write_edif path/xx.edif
  1. 例化时,要保留一个跟edif同名的hdl文件,且文件中只保留module的接口。

封装成dcp

  1. 将需要封装的模块设置为顶层模块;
  2. 在综合选项中的Options下面最后一项More Options一栏写入-mode out_of_context;

在这里插入图片描述

  1. 综合完成后,Open Synthesized Design,并在TCL Console中输入:
write_checkpoint -noxdef path/test.dcp
  1. 例化时,保留dcp文件即可,如果该dcp文件的接口中有parameter,例化时应该将parameter去掉。

dcp模块的接口如下:

module dcp_demo #(
 paramter paramt1 = 1,
 paramter paramt1 = 2
)(
 input in1,
 output o1
)

则例化方式如下,不能有包含parameter,否则会报错

dcp_demo (
 .in1 (in1),
 .o1  (o1)
 );

封装成edif和dcp的区别

  1. 封装edif文件时,不能将XIlinx的IP Core封装在文件中,但dcp文件可以;
  2. 例化时的区别,edif是网表文件,例化时需要增加同名的hdl文件,但dcp文件其实就是个压缩文件,例化时只使用dcp文件即可,不需要再加入同名的hdl文件。

封装dcp文件时的注意事项

  1. 在将文件设为顶层文件时,接口中的parameter一定记得要修改成实际值。这是因为我们都习惯于在hdl中例化模块时指定parameter的参数,这往往跟模块中的参数值是不一样的;
  2. 输入的接口例化时不能悬空,有的接口赋0即可,但有的接口赋0后在Implementation时会报error;
  3. 需要额外注意inout接口,很多工程师在使用inout接口时,习惯于自己用hdl来处理,比如I2C的inout接口我们经常会这么写:
assign scl_in = i2c_scl;
assign i2c_scl = i2c_scl_oe ? i2c_scl_o : 1'bz

但这么写的话,生成的dcp在Implementation时会报error,我们要使用Xilinx的IOBUF的原语来处理,改成下面的写法:

IOBUF #( .DRIVE(12), .IBUF_LOW_PWR("TRUE"), .SLEW("SLOW") ) SCL_inst (.O(scl_in),.IO(i2c_scl), .I(i2c_scl_o),.T(~(enable & ~scl_out)));
  1. 在我们把文件设为顶层文件后,需要将工程中的约束文件先Disable掉,因此dcp文件中会带有当前工程的约束信息,如果没有Disable掉,那么在例化生成的dcp时会引入新的约束文件。

加FPGA技术交流群的朋友,请加微信:xhclsys2

欢迎关注微信公众号:

在这里插入图片描述

  • 17
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vivado是Xilinx公司推出的集电路设计软件,支持Verilog和VHDL等HDL语言的设计,其主要功能包括逻辑综合、仿真、布局布线等。其,网表文件和DCP文件是Vivado常见的封装文件。 网表文件是一种基于门级网表描述的电路设计文件,可用于设计模拟和综合等过程。在Vivado,当我们进行综合和仿真时,会生网表文件作为间产物,以供后续使用。需要注意的是,网表文件只包含特定设计阶段的元素,而不包含具体的FPGA芯片信息。 而DCP文件则是对网表文件进行封装后的设计文件,包含了完整的FPGA芯片信息和约束等元素。它相当于是一个FPGA芯片的镜像,可以直接进行实现和下载。DCP文件包含的信息较为完整,能够支持绝大部分功能的设计和实现。同时,在设计后期,我们也可以将DCP文件作为IP核加入到其他设计进行使用。 在Vivado,网表文件和DCP文件的生和使用十分简单。在设计过程,我们可以通过勾选“generate output products”选项,自动生网表文件和DCP文件,并选择需要的格式和信息。对于使用网表文件进行仿真或综合等操作,我们只需要在相应的选项卡选择该文件进行指定即可。而对于DCP文件的使用,我们则可以直接将其导入到其他设计或进行下载。 综上所述,Vivado网表文件和DCP文件是电路设计过程常见的封装文件。在进行设计时,我们可以根据需要生相应的文件,并进行使用。其DCP文件包含的信息较为完整,可以直接进行FPGA芯片的实现和下载,同时也支持IP核的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值