首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

数字电路设计PTL编码原则

数字电路设计PTL编码原则

本帖最后由 look_w 于 2017-9-22 21:33 编辑

一、performance:要满足所需逻辑功能以及时序要求。这是最重要的一项,要是连这个都不满足,那么做这个项目就没有了意义。不过在满足这个performan的过程中会遇到一些问题,比如下面的都是在写HDL的功能上需要注意的地方。如果要有较高的frequency的话,可以考虑并行处理,流水线之类的。

阻塞/非阻塞:“=”用于组合逻辑;“<=”用于时序逻辑。
不完全敏感清单:always@(*)是利用了所有的信号,这样做不容易遗漏信号。
RTL的延时:延迟是不可以综合的,可以考虑加buffer,buf可以有延时效果。使用#delay是无效的。
锁存器:不完整的case和if语句会导致锁存器,一般不要有锁存器,会导致时序的混乱。
代码的循环利用:尽量写成可循环利用的模块,可以提高代码利用率,减少面积和功耗。
状态机:Moore机由当前状态决定输出,通常用one-hot代码,输出译码逻辑少。Mealy机由当前状态和当前输入决定下一状态,一般使用二进制编码!但是比较快!
避免触发器混合用:如果正负时钟沿用于捕捉或提供外部DDR数据,利用I/ODDR。


二、resource:就是实现我们的功能我们希望尽量减少资源的使用,提高资源的利用率。我们希望用最少的资源做最多的事,这为我们的设计降低了成本。我们可以在综合设置选项中关闭逻辑复制(logic replication)综合选项。我们要尽量减少寄存器的使用,一些工程师跟我说寄存器往往是最宝贵的资源,尽量节约一些。所以编程的时候尽量用wire,不要用reg的资源。不是很必要的话,尽量减少流水线级数,多使用SRLs,DSP slices和block RAMs等专有硬件资源代替。


三、power:如今移动设备越来越轻量化,对于功耗提出了更高的要求,除了电池的单位存储量越来越大之外,还可以使得硬件的低功耗运行状态,具体技术可以看我之前的博客。那些方法都是从很多论文里看到的,理论简单,都是效果很好。还推荐大家看一本书《power essential》,这本书从物理模电级别,COMS到数字电路的RTL再到架构都有进行低功耗处理,应该是目前为数不多的几本低功耗书籍,你可以看看亚马孙的价格都要上千的。(不过可以向我要电子版!!!)只有英文版,写得真是不错!
返回列表