资料介绍
本文转载自: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仿真结果如下图:

对比可知仿真结果一致;
- Linux系统中EXP命令详解质量汇总 1次下载
 - Xilinx_Vivado_zynq7000入门笔记 71次下载
 - Vivado中xilinx_BRAM IP核使用
 - Xilinx LogiCORE IP块内存生成器的产品指南 22次下载
 - MicroBlaze(Vivado版)设置说明详细资料免费下载 0次下载
 - Xilinx Vivado SDK 2017.2 0616 1 Win64软件免费下载 320次下载
 - 面向对数与指数函数的可重构阵列结构 0次下载
 - 摄像头的硬件函数(IP核) 13次下载
 - PCI总线IP核(华为的商用) 30次下载
 - USB IP核 13次下载
 - PCI Express IP核应用参考设计 14次下载
 - USB2.0 IP核源代码 35次下载
 - FPGA中IP核的生成 11次下载
 - 如何仿真IP核(建立modelsim仿真库完整解析) 35次下载
 - RBF神经网络中指数函数e的FPGA实现
 
- LogiCORE JTAG至AXI Master IP核简介 849次阅读
 - 从Xilinx FFT IP核到FPGA实现OFDM 1125次阅读
 - Video In to AXI4-Stream IP核知识介绍 1429次阅读
 - 使用VCS仿真Vivado IP核时遇到的问题及解决方案 1993次阅读
 - 使用VIvado封装自定IP并使用IP创建工程 5265次阅读
 - xilinx Vivado工具使用技巧 3934次阅读
 - 调用Vivado IP核的方法 4648次阅读
 - Vivado中的IP核封装 1w次阅读
 - 基于传感器温度补偿方法的双指数函数模型的温度补偿算法设计 9960次阅读
 - Vivado软件仿真DDS核的过程中应该注意的问题 9659次阅读
 - Xilinx中的xapp1052的详细解释 7179次阅读
 - Vivado将模块封装为IP的方法介绍 7748次阅读
 - 赛灵思Vivado开发套件与IP核的原理作用分析 1924次阅读
 - 在Vivado下利用Tcl实现IP的高效管理 5708次阅读
 - Vivado环境下如何在IP Integrator中正确使用HLS IP 4324次阅读
 
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
 - 0.00 MB | 1491次下载 | 免费
 - 2单片机典型实例介绍
 - 18.19 MB | 95次下载 | 1 积分
 - 3S7-200PLC编程实例详细资料
 - 1.17 MB | 27次下载 | 1 积分
 - 4笔记本电脑主板的元件识别和讲解说明
 - 4.28 MB | 18次下载 | 4 积分
 - 5开关电源原理及各功能电路详解
 - 0.38 MB | 11次下载 | 免费
 - 6100W短波放大电路图
 - 0.05 MB | 4次下载 | 3 积分
 - 7基于单片机和 SG3525的程控开关电源设计
 - 0.23 MB | 4次下载 | 免费
 - 8基于AT89C2051/4051单片机编程器的实验
 - 0.11 MB | 4次下载 | 免费
 
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
 - 0.00 MB | 234313次下载 | 免费
 - 2PADS 9.0 2009最新版 -下载
 - 0.00 MB | 66304次下载 | 免费
 - 3protel99下载protel99软件下载(中文版)
 - 0.00 MB | 51209次下载 | 免费
 - 4LabView 8.0 专业版下载 (3CD完整版)
 - 0.00 MB | 51043次下载 | 免费
 - 5555集成电路应用800例(新编版)
 - 0.00 MB | 33562次下载 | 免费
 - 6接口电路图大全
 - 未知 | 30320次下载 | 免费
 - 7Multisim 10下载Multisim 10 中文版
 - 0.00 MB | 28588次下载 | 免费
 - 8开关电源设计实例指南
 - 未知 | 21539次下载 | 免费
 
总榜
- 1matlab软件下载入口
 - 未知 | 935053次下载 | 免费
 - 2protel99se软件下载(可英文版转中文版)
 - 78.1 MB | 537793次下载 | 免费
 - 3MATLAB 7.1 下载 (含软件介绍)
 - 未知 | 420026次下载 | 免费
 - 4OrCAD10.5下载OrCAD10.5中文版软件
 - 0.00 MB | 234313次下载 | 免费
 - 5Altium DXP2002下载入口
 - 未知 | 233046次下载 | 免费
 - 6电路仿真软件multisim 10.0免费下载
 - 340992 | 191183次下载 | 免费
 - 7十天学会AVR单片机与C语言视频教程 下载
 - 158M | 183277次下载 | 免费
 - 8proe5.0野火版下载(中文版免费下载)
 - 未知 | 138039次下载 | 免费
 
	                电子发烧友App
	            
	        
	        
          
        
        
	                    
                        
                        
                        
                        
                        

创作
发文章
发帖  
提问  
发资料
发视频
上传资料赚积分
           
            
            
                
            
评论