本文原文为;《A Study on Look-up TableBased Sine Wave Generation》

Abstract

正弦波发生器广泛应用于通信、控制、生物医学电子和音乐合成等领域,基于查找表(LUT)的正弦波发生器由于其结构简单而成为一种常见的实现方式。此外,LUT是一种通用的功能逻辑器件,可以很好地适应可编程逻辑场景,这是因为它们与FPGA的多个方面交织在一起。本文旨在探讨LUT正弦波的实现,包括线性和三次插值的变化,特别是考虑到ROM大小变化的影响。文中还给出了与数字谐振器、CORDIC(坐标旋转数字计算机,Coordinate Rotation Digital Computer)等其他正弦波产生技术的比较,包括THD(Total Harmonic Distortion,总谐波失真)、SNR(SIGNAL NOISE RATIO,信噪比)、ENOB(信纳比)等与信号相关的元素,以及资源和功耗等硬件实现因素。这些源代码是用Verilog编写的,并且是为FPGA Spartan-3E开发板和Synopsis实施的,而无需考虑模拟重建。

1 Introduction

可测性测试和可测性设计(DFT)已经成为大多数电子设计的一个重要方面,而且考虑到现代封装技术涉及的结构复杂性。知识产权(IP)内核,混合技术和混合信号系统带来了许多挑战,这些挑战主导了测试以及开发时间和成本。在过去几十年的数字技术革命中传统的方法,如参数表征或特定于硬件的测试系统,远远不能提供自动测试设备(automatic testing equipment,ATE)和内建自测试( built in self testin,BIST)所达到的成本稳定效果。在考虑远程或现场监控解决方案的场景时,这一点尤其值得关注,因为远程或现场监控解决方案需要持续不断的自诊断和自校准策略。此外,现代设计中混合模拟和数字(MAD)信号集成的持续趋势催生了新的测试解决方案,以适应新的测试解决方案,特别是在时钟频率由于信号完整性问题而将模拟和数字信号推向同一领域的时代。
局部刺激产生是开发可行的BIST(内建自测试( built in self testin,BIST))方案的强制性和关键性要求之一。像MAD-BIST这样的策略[1],似乎是朝着正确方向迈出的一步,对任意波形发生器都有至关重要的作用。基于查找表(LUT)的正弦发生器具有许多优点,如简单、瞬时频率和跳相,这些优点与数字-模拟(DAC)策略相结合(例如Δ-∑调制器,提供了一种完整的数字信号产生解决方案)。LUT一直被用于解决数字系统中的各种问题,并且它们在现场可编程门阵列(FPGA)中的存在已广为人知。基于这样的原因,可以理解基于LUTS的正弦发生器、它们的问题和替代方案。
本文提出的工作旨在比较在不同计算算法中实现的查找表的行为性能。作为品质因数,评估了以下参数:THD、ENOB、SNR、FPGA资源消耗以及不同时钟频率下的ASIC面积和功耗。第二节描述了基于查找表的实现背后的原理和使用的内插策略。第三节给出了仿真和软件级实现的结果。第三节和第四节分别对所获得的数据和结论进行了讨论。

2 Look-up table method

在数字环境下,利用LUTS产生正弦波具有编程简单、速度快等优点,是一种广为人知的首选方法。直接查找表(DLUT),或者有时被称为数控振荡器(NCO)或直接数字频率合成(DDFS),基本上应用相位到幅度转换策略,其中预先计算的正弦/余弦波的系数存储在表中,并通过使用相位累加器来访问。存在多种可变压缩率的LUT方法,其中一些已在[2][3]中进行了解释。当没有应用压缩时,对于整个波周期,该表-或者在涉及数字结构时称为ROM-包含N个均匀间隔的系数(coefficients)。然后,相位累加器可用于通过由增量(∆)调谐的连续迭代(i)来调节对N个预存储角度的访问。
下面的公式(1)表示每次迭代的波系数 (WcoeffW_{coeff}Wcoeff​),当量,而(2)表示基于向下取整函数的余数函数。

如在(1)上所观察到的,该序列在步长超过N的迭代时间处重新设置,从而有效地产生了环绕。 基于迭代或采样频率(fs)的生成波的频率如下(3)所示。

无需数学计算,该方法具有强大的性能优势,其中信号纯度取决于表的字长、步长和迭代速率。 由于[4]中所述的多种原因,可能会导致各种类型的失真。为了改善面积/资源消耗,以及由于小数寻址而造成的失真,多年来已经提出了许多策略,其中四分之一波表压缩和内插似乎已经成为常见的开始策略

A 四分之一波压缩

该压缩策略利用正弦/余弦波的对称性,并且仅基于单位圆的第一象限即从0到π/2\pi/2π/2的角度来存储系数。在数字实现中,两个最高有效位可用于识别角度(或更准确地说是地址)的象限; 因此,可以按照(4)进行补偿,其中θ\thetaθ代表与迭代相关的角度。

在四分之一波压缩下用DLUT产生正弦波的过程中,三角波和锯齿波同时产生(由于ROM寻址),这可以证明它在BIST等各种场景中的应用。

B 插值 Interpolation

插值策略通常用于从图像处理、通信到计算机图形学的许多应用中,以补偿丢失的数据、缺乏点密度等。简单地说,插值引入了已知点之间的附加数据,从而改善了过渡。最基本的插值是线性插值,它基本上是根据权重因子α\alphaα求两点的平均值,如(5)中所示。其中0<α\alphaα<1.

具有更无缝结果的策略,同时又保持实现简便性的是三次插值,它利用了集合中的两个附加点(从目标插值的每一侧再增加一个点)。式(6)给出了基本的结果计算, (7)和(8)定义了相关系数。

3 结果

在Verilog上实现了多种基于CoreLUT的正弦波发生器,它们具有不同的表大小和策略。 使用ModelSim PE Student Edition 6.6b Rev. 2010.05进行功能验证和矢量生成。 Xilinx的ISE 10.1.03用于Spartan 3E xc3s500e-4-fg320目标的文件生成。此外,Synopsis采用0.35μm技术,没有对面积或功率进行优化,以获得不同时钟频率的总动态功率和面积消耗(参见稍后的图2至4)。线性和立方插值实现均使用0.5,而立方实现使用(9)和(10)中的系数。系数用向下垂直递增的m和从左到右递减的字母(即d、c、b和a)表示,其中(9)表示基本的实现友好集,(10)称为Catmull-Rom样条[5]。

以下是实施和相应结果的列表。还实施了其他策略,如二阶数字谐振器[[5]、CORDIC、Hutchison,以便深入了解LUT特性。
表1. FPGA资源使用情况比较。Table 1. FPGA resource usage comparison.

PPC:每周期点数;FF:触发器;LUT:4输入LUT;QC:四分之一周期;LI:线性;CI:立方I;C II:立方II;H:哈钦森;CC:CORDIC


图1.生成的正弦波频谱:a)二阶数字谐振器〜每个周期256点 b)四分之一波LUT 256点 ROMc)三次插值32 pts ROM


图2.不同ROM大小的四分之一波LUT比较

图3. 20 ns时钟的各种策略比较a)总动态功率b).QC面积:四分之一波长压缩。 QC / Hutch。/ CORDIC 1:4K; 2:1K; 3:256 线性/立方1:256; 2:64; 3:8; pts per ROM或循环。

表2.各种正弦波发生器实现的信号参数化

4 讨论

虽然基于LUT的正弦波发生器具有许多积极的属性,但是在图1上可以观察到,产生的信号的频谱表示呈现出不一定被理解的特征。虽然基于LUT的正弦波发生器具有许多正属性,但是可以在图1上观察到,所生成信号的频谱表示呈现不一定被理解的特性。当与诸如二阶数字谐振器之类的策略相比时,该策略在每个象限甚至每个周期中不呈现相同的点,很明显,谐波的贡献甚至对于补偿策略(如三次插值)也很重要。应该注意的是,DAC引入的自然效应通常会将生成的LUT策略信号转换为具有改进频谱的信号。表2提供了对这种方式的更多了解如果二阶谐振器的总谐波失真(THD)明显比基于LUT的策略的总谐波失真(THD)要低,但是一旦应用插值,差异就不那么明显了,并且从有效比特数(ENOB)和信噪比(SNR)的频谱插值可以发挥优势。
从图2 a)中,我们观察到4K,1K和256ROM大小的四分之一波压缩实现的摘要实现的总动态功率的预期行为,其中功率随时钟频率和ROM大小的增加而增加。 同时,在图2b)和c)中,与基于LUT的策略相比,诸如CORDIC之类的策略在面积和功耗上都非常昂贵。 即使使用两个俯仰LUT方法的Hutchison方法也可以更具优势,甚至可以与面积上的三次插值相媲美,尽管其功耗通常仍优于插值。 再次表1说明了在考虑资源时基于LUT的策略的优势。 理论上,三次插值的系数I更易于设计,因为只有2和0的幂。有趣的是,对于三次插值I和三次插值II来说,它们在资源利用方面的作用与它们在大纲实现方面的作用是相反的,这让我们可以更深入地了解fpga环境与ASIC设计之间的继承差异。

5 结论

LUT代表了数字电子工具箱的关键要素,其功能灵活性使其成为众多策略和设计的关键组成部分。当考虑MAD信号场景时,尤其是对于自诊断方案,基于LUT的正弦波发生器作为BIST场景的有效替代方案就不足为奇了。此外,从信号和实现的角度比较它们的性能,可以改进在考虑设计时的决策位置。结果表明,就面积和总动态功耗而言,1/4周期的LUT实现是可取的,但如果不采用诸如内插等策略,信号纯度就会受到一定程度的影响。在未来的工作中,预计会对更多的元素和实现进行更深入的分析。

基于查找表的正弦波生成的研究相关推荐

  1. 如何通俗地理解基于查找表的DDS、相位累加器、相位调制器?

    1.理论 DDS 技术是一种全新的频率合成方法,其具有低成本.低功耗.高分辨率和快速转换时间等优点,对数字信号处理及其硬件实现有着很重要的作用. DDS 的基本结构主要由相位累加器.相位调制器.波形数 ...

  2. ECCV2022 | 开源:基于可分离级联查找表的实时图像增强方法

    近日,阿里巴巴大淘宝音视频算法与基础技术团队和上海交通大学图像所合作论文<SepLUT: Separable Lookup Tables for Real-time Image Enhancem ...

  3. 基于高效查找表的无记忆非线性自适应基带预失真架构

    原文标题为:<Efficient Lookup Table-Based Adaptive Baseband PredistortionArchitecture for Memoryless No ...

  4. 用于射频功率放大器线性化的多查找表数字预失真

    文章原名为:<Multi Look-Up Table DigitalPredistortion for RF PowerAmplifier Linearization>的博士论文 自适应数 ...

  5. 基于深度学习的宋词生成

    <自然语言处理>课程报告 摘 要 宋词是一种相对于古体诗的新体诗歌之一,为宋代儒客文人智慧精华,标志宋代文学的最高成就.宋词生成属于自然语言处理领域的文本生成模块,当前文本生成领域主要包括 ...

  6. 从底层结构开始学习FPGA(2)----LUT查找表

    文章目录 系列目录与传送门 一.概述 二.实现原理 系列目录与传送门 <从底层结构开始学习FPGA>目录与传送门 一.概述 记得刚接触FPGA的时候,总能看见类似这样的一句话----FPG ...

  7. 微软亚洲研究院论文解读:基于动态词表的对话生成研究(PPT+视频)

    本文为 12 月 27 日,北京航空航天大学博士生.微软亚洲研究院实习生--吴俣在第 21 期 PhD Talk 中的直播分享实录. 本次 Talk 的主题是基于动态词表的对话生成研究.首先,吴俣博士 ...

  8. 实时图像增强,基于“间距自适应查找表”的方法(CVPR 2022)

    关注公众号,发现CV技术之美 本文分享一篇阿里巴巴大淘宝技术与上海交通大学图像通信与网络工程研究所(简称图像所)合作论文<AdaInt:Learning Adaptive Intervals f ...

  9. CVPR2022 | 开源:基于间距自适应查找表的实时图像增强方法

    近日,阿里巴巴大淘系技术与上海交通大学图像通信与网络工程研究所(简称图像所)合作论文<AdaInt:Learning Adaptive Intervals for 3D Lookup Table ...

最新文章

  1. 《中国人工智能学会通讯》——1.42 理解情感
  2. 强势分享5款超级实用的办公软件,建议收藏!
  3. python制作二级菜单_python实现二级登陆菜单及安装过程
  4. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 )
  5. 使用js技术使字体闪烁
  6. ETL工具Kettle使用
  7. 非捕获Lambda的实例
  8. 用vhdl实现4位加减法计数器_32位加减法器设计
  9. linux桌面版自动更新关闭了,桌面应用|开启 Ubuntu 系统自动升级
  10. oracle 表关联索引优化,Oracle执行计划调优-超级大表关联超级小表的性能调优
  11. Asp.net Ajax 的 PageRequestManager类的事件
  12. 【从C到C++学习笔记】C++介绍/推荐书籍/开发工具
  13. Redis开发与运维读书笔记
  14. C++ malloc()的使用
  15. 军用计算机通用规范测试试验,军用装备环境可靠性试验项目表
  16. 潦草字体在线识别_潦草字体在线识别_遇到好看的字体?不会识别?教你如何快速识别字体...
  17. android hci设备,android-hci相关操作
  18. ubuntu2004上使用python以及postgresql处理数据 - 针对comp3311
  19. 盯市盈亏、浮动盈亏、总盈亏的计算方法
  20. 圣彼得堡三大教堂_2020年9大最佳教堂网站建设者(适合初学者)

热门文章

  1. 浏览器打印功能print.js
  2. nvidia显卡驱动卸载和卸载后的问题
  3. 脏写、脏读、不可重复读、幻读
  4. 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)
  5. 安卓系统双屏异显_双屏异显在Android系统上的实现
  6. 搭建ntp时间同步服务器,解决cm时间问题
  7. html如何发送验证码到手机,页面效果,给手机发送验证码
  8. 照片背景底色更换工具二(python+flask网页版源码及打包)
  9. java.lang.IllegalAccessException:的一种错误类型
  10. 台式计算机软件打不开,电脑打开软件显示乱码的解决方法 电脑点击软件没反应怎么办...