软件版本:vivado 2018.01
操作系统:cent os 6.0
本文章中主要介绍在vivado中如何使用系统工具封装我们自己的IP,此例实现了将sha256_pad这个模块挂在AXI-STREAM总线上
sha256_pad定义如下:
//---------------------------------------------------------
// Module : sha256_pad
// Input: length of pkt
// Input: pkt
// Output: data after padding
//---------------------------------------------------------
// Author: zxl
// Date: 2018/8/13
// Verion: v1.0
//---------------------------------------------------------
module sha256_pad #(
//RSV
)
(
sys_clk,
sys_rst,
len_data_byte,
data_in_valid,
data_ori_4_byte,
data_pad_valid,
data_pad_out
);
//port define
input sys_clk;
input sys_rst;
input [31:0] len_data_byte;
input data_in_valid;
input [31:0] data_ori_4_byte;
output reg data_pad_valid;
output reg [511:0] data_pad_out;
1、新建vivado工程,tools->create and package new ip ->next
2、 Create AXI4 Peripheral -> next
3 、命名好自己的IP名,此处我命名为SHA256,点击next后,总线类型选为AXI STREAM, SLAVE模式,finish
4、在IP Catalog 中检索刚才定义好的SHA256
5、选中SHA256_V1_0 右键 Edit in IP Packager
6、打开工程后,我们将sha256_pad.v文件通过add source添加到工程中去,此处图略。
7、查看源码,打开SHA256_v1_0_S00_AXIS.v文件,在端口定义处添加自己的端口定义,如图:
8、在最下方例化自己的模块,如图:
9、其它逻辑代码也可自行修改,保存后,综合。
10、代开Package IP视图,更新所有选项使其变为绿色后,Re-Package IP
11、完成后,新的IP修改成功,可在工程中直接检索使用。