vivado IP学习 divider
IP:这个IP输出结果64位,32位整数部分,32位小数部分
tb code
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2025/03/25 16:29:45
// Design Name:
// Module Name: tb_IPdivider
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module tb_IPdivider(
);
reg clk_100 ;
reg valid ;
wire dout_valid ;
wire [63:0] dout_data ;
reg [31:0] data ;
initial
begin
clk_100 = 1'b0 ;
valid = 1'b0 ;
#50
valid = 1'b1 ;
#1000
$finish ;
end
always #5 clk_100 = ~clk_100 ;
divider_1000000000 divider_inst
(
.aclk(clk_100), // input wire aclk
.s_axis_divisor_tvalid(valid), // input wire s_axis_divisor_tvalid
.s_axis_divisor_tdata( 32'd100 ), // input wire [31 : 0] s_axis_divisor_tdata
.s_axis_dividend_tvalid(valid), // input wire s_axis_dividend_tvalid
.s_axis_dividend_tdata( 32'd2000 ), // input wire [31 : 0] s_axis_dividend_tdata
.m_axis_dout_tvalid( dout_valid ), // output wire m_axis_dout_tvalid
.m_axis_dout_tdata( dout_data ) // output wire [63 : 0] m_axis_dout_tdata
);
always@( posedge clk_100 )
begin
if( dout_valid == 1'b1 )
begin
data = dout_data[63:32] ;
end
else
begin
data <= data ;
end
end
endmodule
波形