您当前的位置: 首页 > 

耐心的小黑

暂无认证

  • 1浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vivado cordic IP核实现开方运算

耐心的小黑 发布时间:2021-04-09 09:32:11 ,浏览量:1

一、前言

在FPGA上进行开方运算,除了可以自己写开方算法,如上一篇文章:verilog 整数开方算法实现(逐次逼近法)。还有一种更加简单的方式就是直接调用IP核,下面就使用Xilinx官方提供的cordic IP核来实现开方运算。

二、IP核配置在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

三、程序设计
module square(
    input clk,
    input rst_n,
    input data_in_valid,
    input [15:0] data_in,

    output data_out_valid,
    output [15:0] data_out

    );


    root2 u_root (
        .aclk(clk), 
        .aresetn(rst_n),                                       
        .s_axis_cartesian_tvalid(data_in_valid),  
        .s_axis_cartesian_tdata(data_in),    
        .m_axis_dout_tvalid(data_out_valid),
        .m_axis_dout_tdata(data_out)            
    );
endmodule
四、设计仿真
`timescale  1ns / 1ps

module tb_square;

// square Parameters
parameter PERIOD  = 10;


// square Inputs
reg   clk                                  = 0 ;
reg   rst_n                                = 0 ;
reg   data_in_valid                        = 0 ;
reg   [15:0]  data_in                      = 0 ;

// square Outputs
wire  data_out_valid                       ;
wire  [15:0]  data_out                     ;


initial
begin
    forever #(PERIOD/2)  clk=~clk;
end

initial
begin
    #12 rst_n  =  1;
end

square  u_square (
    .clk                     ( clk                    ),
    .rst_n                   ( rst_n                  ),
    .data_in_valid           ( data_in_valid          ),
    .data_in                 ( data_in         [15:0] ),

    .data_out_valid          ( data_out_valid         ),
    .data_out                ( data_out        [15:0] )
);

reg	[4:0]		cnt ;
	
//----------------------------------------------------------------------
	always@(posedge	clk or negedge	rst_n)
		begin
			if(!rst_n)
				begin
					data_in_valid             
关注
打赏
1640088279
查看更多评论
0.0369s