首页| JavaScript| HTML/CSS| Matlab| PHP| Python| Java| C/C++/VC++| C#| ASP| 其他|
购买积分 购买会员 激活码充值

您现在的位置是:虫虫源码 > 其他 > Cordic 算法实现

Cordic 算法实现

  • 资源大小:5.96 kB
  • 上传时间:2021-06-30
  • 下载次数:0次
  • 浏览次数:1次
  • 资源积分:1积分
  • 标      签: VHDL

资 源 简 介

Cordic 算法,并用该算法实现 sin 和 cos 函数。 在这个 cordic 算法顶层下,有 4 个模块。分别为按钮脉冲检测 btnPulse,角度输入 ang,板卡显 示 disp,算法核心 cordic。 BtnPulse 按分频后的时钟间隔检测对应按钮位置,当检测到连续三次的结果依次为 0、1、1 时 发送一次按钮脉冲 pulse。pulse 被作为 ang 模块的时钟,在每个 ang 的上升沿,根据按钮的对 应位置将相应的数据进行增加或减少。 显示模块 disp 将进行运算后的对应的三角函数值对应到数码管上。其中,实现象限的功能是根 据在第二第四象限的 sin,cos 结果的绝对值与在第一象限相比是将 sin 值和 cos 值交换。而第三 象限的绝对值保持不变。因此,该程序实质上仅计算第一象限的三角函数值,位于其他象限的 在 disp 模块中改变了显示值。正负是通过判断哪种三角函数位于某个象限,通过少量组合逻辑 即可得到。 在 cordic 算法模块中,为了增加计算的精度,选择了进行 28 次迭代。而为了方便移位运算,将 角度数据长度拓展至 32 位,将 cordicPipeline 模块中的数据长度变为 52,由于在其他模块中使 用了 IEEE.STD_LOGIC_UNSIGNED,为了防止冲突,选择手动计算符号位。由于大部分运算均是 重复,因此只要在 cordic 模块中反复调用 cordicPipeline 模块即可,仅需为 cordicPipeline 模块添 加一个使能输入,当计数到 28 时使能失效,停止运算。

文 件 列 表

Cordic 算法实现
ang.vhd
btnPulse.vhd
cordic.vhd
cordicPipeline.vhd
cordic_top.vhd
disp.vhd

相 关 资 源

您 可 能 感 兴 趣 的

同 类 别 推 荐

VIP VIP