电子发烧友App

硬声App

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

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

3天内不再提示
创作
电子发烧友网>电子资料下载>可编程逻辑>Vivado中xilinx_courdic IP核(求exp指数函数)使用

Vivado中xilinx_courdic IP核(求exp指数函数)使用

2021-01-27 | pdf | 175.37KB | 次下载 | 2积分

资料介绍

本文转载自:VagueCheung的博客

由于Verilog/Vhdl没有计算exp指数函数的库函数,所以在开发过程中可利用cordic IP核做exp函数即e^x值;

但前提要保证输入范围在(-pi/4—pi/4)

在cordic核中e^x = sinh + cosh所以在配置cordic时点选sinh and cosh即可 如下图:

input width配置为16位,表示输入数据的第16位是符号位,第15,14位是整数位,其他位表示小数位,相当于13位有符号定点小数;

output width配置16位,高16位表示sinh结果 其中第16位符号位,第15位整数位,其它小数位,相当于13位有符号定点小数;

低16位表示cosh结果 其中第16位符号位,第15位整数位,其它小数位,相当于13位有符号定点小数;

其它选项都按上图显示配置;

编写testbench测试文件:

Testbench:

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

// Create Date: 2018/11/28 09:08:45

// Design Name:

// Module Name: test_bench_IP_cordic_ex

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

// 利用cordic IP核 做pi/5和-pi/4做exp 定义(可自选)

//需自己将仿真结果高16位提出作为sinh值 数据格式为第16位为符号位 第15位是整数位 后边其他是小数

//将仿真结果低16位提出作为cosh值 数据格式为第16位为符号位 第15位是整数位 后边其他是小数

//得到结果exp(x)=sinh+cosh

// Dependencies:

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//////////////////////////////////////////////////////////////////////////////////

module test_bench_IP_cordic_ex(

);

//inputs

reg clk;

reg[15:0] s_axis_phase_tdata;

reg s_axis_phase_tvalid;

//outputs

wire m_axis_dout_tvalid;

wire[31:0] m_axis_dout_tdata;

//others

wire[15:0] sinh;

wire[15:0] cosh;

wire[15:0] exp;

assign sinh = m_axis_dout_tdata[31:16];

assign cosh = m_axis_dout_tdata[15:0];

assign exp = sinh + cosh;

cordic_0 cordic_m0(

.aclk(clk),

//.rst(rst),

.s_axis_phase_tdata(s_axis_phase_tdata),

//.s_axis_phase_tready(s_axis_phase_tready),

.s_axis_phase_tvalid(s_axis_phase_tvalid),//s_axis_phase_tvalid),

.m_axis_dout_tvalid(m_axis_dout_tvalid),

.m_axis_dout_tdata(m_axis_dout_tdata)

);

always #5 clk = ~clk;

initial begin

clk = 0;

s_axis_phase_tvalid = 0;

s_axis_phase_tdata = 0;

#150

s_axis_phase_tvalid = 1;

s_axis_phase_tdata = 16'b0001010000011011;//pi * 1/5

#10

s_axis_phase_tdata = 16'b1110011011011110;//-pi * 1/4

#10

s_axis_phase_tvalid = 0;

#40000 $finish;

end

endmodule

仿真结果如下图:

图中标红区域值分别为:

e(pi/5)=1.87432861328125

e(-pi/4)=0.45587158203125

利用Matlab仿真结果如下图:

对比可知仿真结果一致;

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1电子电路原理第七版PDF电子教材免费下载
  2. 0.00 MB  |  1491次下载  |  免费
  3. 2单片机典型实例介绍
  4. 18.19 MB  |  95次下载  |  1 积分
  5. 3S7-200PLC编程实例详细资料
  6. 1.17 MB  |  27次下载  |  1 积分
  7. 4笔记本电脑主板的元件识别和讲解说明
  8. 4.28 MB  |  18次下载  |  4 积分
  9. 5开关电源原理及各功能电路详解
  10. 0.38 MB  |  11次下载  |  免费
  11. 6100W短波放大电路图
  12. 0.05 MB  |  4次下载  |  3 积分
  13. 7基于单片机和 SG3525的程控开关电源设计
  14. 0.23 MB  |  4次下载  |  免费
  15. 8基于AT89C2051/4051单片机编程器的实验
  16. 0.11 MB  |  4次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234313次下载  |  免费
  3. 2PADS 9.0 2009最新版 -下载
  4. 0.00 MB  |  66304次下载  |  免费
  5. 3protel99下载protel99软件下载(中文版)
  6. 0.00 MB  |  51209次下载  |  免费
  7. 4LabView 8.0 专业版下载 (3CD完整版)
  8. 0.00 MB  |  51043次下载  |  免费
  9. 5555集成电路应用800例(新编版)
  10. 0.00 MB  |  33562次下载  |  免费
  11. 6接口电路图大全
  12. 未知  |  30320次下载  |  免费
  13. 7Multisim 10下载Multisim 10 中文版
  14. 0.00 MB  |  28588次下载  |  免费
  15. 8开关电源设计实例指南
  16. 未知  |  21539次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935053次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537793次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234313次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191183次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183277次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138039次下载  |  免费