算法的硬件实现
DspSimuRTL
毕业于清华大学,超过15年的工作经验,多款商用芯片量产经历。精通信号处理,精通基于模型的算法电路设计。
展开
-
硬件设计的MBD实践:设计复用(FSK/PSK/AM调制)
开始一个新的设计时,我们都希望能复用以前设计中的一些部件,一方面是可以减少一些重复性的设计工作;另外一方面,以前的部件多是经过验证了的,出问题的概率也比较小。所谓基于模型的设计,不也是在不断复用这些单元模型嘛。当然基于模型的设计方法,设计复用远不止单元模型而已,下面展示的是,复用DDS设计实现一个FSK调制。将之前名称为DDS设计另存为名称FSK的设计。(这一步就已经实现了对DDS设计的复用)在新另存FSK设计中,增加一个选择器,用待调制比特切换两个频率值。对比FSK和DDS,可以看出,复用DDS原创 2020-08-20 15:20:12 · 818 阅读 · 0 评论 -
硬件设计的MBD实践:自动代码的效率与优化
自动生成的RTL代码,大家疑虑最多的就是效率问题。如果自动代码的电路面积,功耗和时序性能做不到与手工代码相当,其它方面的优点再多也很难让大家接受,特别是成本、功耗和性能敏感的ASIC设计。可以自动生成RTL代码的两大方法,HLS和MBD,MBD一定要在代码效率这个问题上和HLS划清界线。HLS“骗取”了设计师对电路的精细控制权,那它就必须要对电路效率负起完全的责任,将电路效率优化到与手工代码相当是HLS必须要完成的承诺,不管这个承诺有多难达成。MBD完全没有必须蹚“电路效率优化”这滩浑水,把自己陷入到HL原创 2020-08-18 18:54:52 · 800 阅读 · 0 评论 -
硬件设计的MBD实践:自动生成RTL代码
生成RTL代码简单3个步骤就可以自动生成RTL代码。1)模型设计的顶层放置一个代码生成控制器,设置RTL代码的模块名称和一些文件头信息,时钟频率将用于自动生成的DC综合脚本。2)开启RTL代码生成服务器3)运行一次Simulink仿真RTL代码解析1)文件头与模型设计中的RTL Generate Control的参数设置对应。2)模块声明和端口声明与输入端口模型和输出端口模型对应:CLK和RST_N是数字电路两个必要的信号,隐含在模型设计的基于节拍的仿真方式中。3)每个模型原创 2020-08-15 19:46:50 · 1626 阅读 · 2 评论 -
硬件设计的MBD实践:DDS
DDS(直接数字频率合成器)在信号源、测量和通信中有着非常广泛的应用,也是硬件设计方法学最喜欢用来演示的例子。浮点设计使用MBD(基于模型设计)方法来实现DDS是非常简单的,从模型库中拽出三个模型:一个加法器,一个延时单元,一个Matlab的自定义函数,连接好连线。编辑Matlab自定义函数为计算正弦值设置一个频率输入值,输出连接到示波器,运行仿真,查看波形正确。这里体现了MBD方法学的一个价值:Continuous Test and Verification。 在早期就能做仿真验证,尽可能原创 2020-08-15 19:08:37 · 551 阅读 · 0 评论 -
硬件设计MBD的困境与出路
硬件设计特指使用到RTL代码的FPGA编程和ASIC设计,不包括PCB设计。上一篇文章谈了MBD的那么多优点,却掩饰不了在硬件设计实践中不如HLS红火的尴尬局面。原因之一是MBD的产品太少,没有HLS那种众人拾柴火焰高的热烈场面。MBD首先得有一个功能强大的设计仿真环境,这样的仿真软件不是那么容易开发出来的,我见到的通用性比较强的这类软件也只有SPW、Simulink和SystemVue这三个而已,其中SPW还停止销售了。Matlab的功能被许多软件模仿得八九不离十,而Simulink的模仿者还差得很远原创 2020-08-12 09:44:59 · 740 阅读 · 0 评论 -
硬件设计中的HLS和MBD方法学
最初的BMD基于模型的设计(MBD)天生就与硬件很亲近,因为不论是晶体管级别,逻辑门级别,SoC级别还是PCB级别,硬件都是由较低级别的多个实体(即模型)按照一定的拓扑结构摆放和连接,从而构成特定的功能。硬件设计首先采用图形输入(模型设计的基本形态)是很自然而然的事情。这一设计方法仍然主导着PCB电路设计,一些FPGA软件也还保留着这一“原始”的输入方法。就算是HDL(硬件描述语言)设计方法成为主导后,工程师也还是喜欢用Verdi之类的工具将HDL设计转换成模型化、层次化的视图来进行调试和分析。HDL出原创 2020-08-08 21:31:04 · 798 阅读 · 0 评论