cordic的FPGA实现(五)、除法实现
这两天颈椎疼,断更两天,公众号人数增加好多,感谢大家的支持,本次就是CORDIC系列的结尾。
根据之前的更新,大家可能已经看出,其实除法器的实现,仅仅改变旋转的参考系即可,除法所使用的参考系为:z,其matlab代码为:
function c = chufaqi(x,y)
t=1.0;
z=0;
for i=0:1:15%y是x累加的结果%z是斜度的长度 1/2^i是移动的距离 if y<0 %矢量向下移动 参考系为yy=y+x*t;z=z-t;t=t/2;else %矢量向上移动 参考系为yy=y-x*t;z=z+t;t=t/2;end
end
c=z;
CORDIC算法verilog实现仅需要更改乘法器的几个变量即可。
常量表
关于前几篇中使用的常量,后台看到了有朋友提问说是什么意思,在结尾和大家解释一下:
atan(1)对应的角度是45°;
atan(0.5)对应的角度是26.565051177078°;
atan(0.25)对应的角度是14.0362434679265°;
atan(0.125)对应的角度是7.1250163489018°;
atan(0.0625)对应的角度是3.57633437499735°;
atan(0.03125)对应的角度是1.78991061°;
atan(0.015625)对应的角度是0.8951737102111°;
atan(0.0078125)对应的角度是0.4476141708606°;
atan(0.00390625)对应的角度是0.2238105003685°;
atan(0.001953125)对应的角度是0.1119056770662°;
atan(0.0009765625)对应的角度是0.0559528918938°;
atan(0.00048828125)对应的角度是0.027976452617,°;
atan(0.000244140625)对应的角度是0.01398822714227°;
atan(0.0001220703125)对应的角度是0.006994113675353°;
atan(0.00006103515625)对应的角度是0.003497056850704°;
atan(0.000030517578125)对应的角度是0.0017485284269°;
将一切视为常量:
为了在FPGA上实现CORDIC运算,需要将浮点数转换为定点数,转换的方式很简单~~~,左移16位不就好了!
所以将上图中的常量统一左移16位,即乘2^16,得到的结果为:
`define rot0 32'd2949120 //45度*2^16
`define rot1 32'd1740992 //26.5651度*2^16
`define rot2 32'd919872 //14.0362度*2^16
`define rot3 32'd466944 //7.1250度*2^16
`define rot4 32'd234368 //3.5763度*2^16
`define rot5 32'd117312 //1.7899度*2^16
`define rot6 32'd58688 //0.8952度*2^16
`define rot7 32'd29312 //0.4476度*2^16
`define rot8 32'd14656 //0.2238度*2^16
`define rot9 32'd7360 //0.1119度*2^16
`define rot10 32'd3648 //0.0560度*2^16
`define rot11 32'd1856 //0.0280度*2^16
`define rot12 32'd896 //0.0140度*2^16
`define rot13 32'd448 //0.0070度*2^16
`define rot14 32'd256 //0.0035度*2^16
`define rot15 32'd128 //0.0018度*2^16
青山不改,绿水长流,CORDIC就更到这里吧,最近有点忙还脖子疼,有时间的话更CRC检验、或者FIR滤波器、或者Aurora、或者GTX、或者一些面试题,也不知道大家想看什么,有的话可以留言给我~~~~掰~~~~
cordic的FPGA实现(五)、除法实现相关推荐
- CORDIC算法FPGA的实现
基于CORDIC算法FPGA的实现 CORDIC算法原理利用简单的移位就实现,主要用于三角函数.双曲线.指数.对数的计算,在以二进制操作为基础的FPGA硬件中就显得尤为重要.虽然现在的fpga有了集成 ...
- CORDIC算法详解(五)-统一的 CORDIC 算法形式
CORDIC算法详解(五)- 统一的 CORDIC 算法形式 文章目录 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 5 统一的 CORDIC 算法形式 相关参考资料及源码 网上有 ...
- FPGA(五)RTL代码之一(跨时钟域设计)
文章目录 前言 一.异步FIFO 二.异步复位同步释放 三.两级触发器同步 四.握手CDC设计 五.异步双口RAM 总结 前言 这不马上要面试了嘛,有些慌!HDLbits的题目已经刷完了,但又知道自己 ...
- FPGA项目五:数码管动态扫描
文章目录 第五章 数码管动态扫描 第 1 节 项目背景 第 2 节 设计目标 第 3 节 设计实现 3.1 顶层信号 3.2 信号设计 3.3 信号定义 第四节 综合和上板 4.1 新建工程 4.2 ...
- 【FPGA】五、蜂鸣器播放音乐
文章目录 前言 一.蜂鸣器简介 二.音频音符简介 三.任务要求 四.程序设计 1.设计思路 2.程序代码 总结 前言 蜂鸣器(Buzzer)是现代常用的一种电子发声器,主要用于产生声音信号.它是一种一 ...
- 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...
- cordic的FPGA实现(三)sin、cos函数运算与源码分析
在旋转模式中曾提到:由于每次伪旋转都导致向量模长发生了变化,以Ki表示第i次伪旋转模长补偿因子,所以第i次伪旋转真实旋转的结果应该为: 经过n次伪旋转,得到的伪旋转点最终结果可以表示为: 当n趋近于无 ...
- FPGA实验五——多周期移位寄存器
实验要求 • 编译下载电路观察现象 • 拨动SW0开关,观察LED的闪烁变换情况 • 设计新的功能 – 在原有的电路基础上,添加方向选择功能. – SW0仍然是移位寄存器组的输入 – 使用SW1开关, ...
- FPGA第五节:ADDA实验
本次主要采用ad9280和ad9708进行ad和da信号转换. 1.信号流通 由ROM中的IP核输出模拟信号,然后经由da9708进行数模转换,经过一根BNC线将ad9708的输出口和ad9280的输 ...
最新文章
- IntelliJ IDEA 2018.1新特性
- 如何判断数组所有数都不等于一个数_【每日算法Day 91】求解数组中出现次数超过1/3的那个数
- 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.2 安装数据库软件)...
- 浏览器九宫格的简单实现 - 蒋宇捷的专栏 - 博客频道 - CSDN.NET
- Windows Vista桌面窗口管理器(3)
- 架构师之路-创业互联网公司如何搭建自己的技术架构
- 假设检验与常见的统计检验方法
- 初始化失败_Destroying singletons
- Electron--快速入门
- 大聪明教你学Java | 实现邮件发送(以163邮箱向QQ邮箱发送邮件为例)
- 发射功率 dBm 计算
- [重磅] 让HTML5达到原生的体验 系列之一 避免切页白屏
- ChatGPT的悄然问世,让原先“吃香”的10种“铁饭碗”快要端不住了:软件技术类、新闻媒体类、法律工作类、市场研究分析师、教师、金融分析类、交易员、平面设计师、会计师、客服人员。
- STM32初学——OLED调试4-1 5-1/5-2
- c#简要程序设计_色彩在品牌设计方面的简要指南
- Google发布Chrome操作系统Chromebook和Chromebox 走亲民路线
- 制作maven-archeType
- 实现在H5中唤起抖音APP
- 网站图片尺寸规格设计指导
- Vue3+TS项目中element-plus自动导入组件后,找不到文件
热门文章
- 【深度策略研究文章】《浅析金融帝国实验室(Capitalism Lab)中工资率的影响》(作者:jiuliumuliao)(2-2)
- 闲鱼平台多卖家出售真人妇科检查视频 回应:已下架
- 第8章第28节:完成企业业绩幻灯片的制作 [PowerPoint精美幻灯片实战教程]
- RGB屏调试经验分享——颜色不对
- 网站复制图片保存自己服务器,WordPress将复制别的网站的文章里的图片自动保存到自己的服务器...
- 自定义View——闹钟
- 盈利不是最关注的问题,途牛另有生存法则?
- 华为OD机试 - 去除多余空格(Java JS Python)
- Spring使用三级缓存解决循环依赖?终于完全弄明白了
- java中mediaplay怎么使用_Android学习笔记使用MediaPlay播放音频