FPGA设计基础--层次化建模和模块划分技巧

前言

详细内容,可以直接跳转阅读《Intel FPGA/CPLD设计高级篇》1.3.2/1.3.3章节。

本文根据个人理解进行整理,目的在于加强个人理解和记忆,同时方便后期时常翻看阅读。

 

 

1、结构层次化编码

基本的结构层次是由一个顶层模块和若干个子模块构成,每个子模块根据需求可以包含自己的子模块。

FPGA设计基础--层次化建模和模块划分技巧_第1张图片

结构层次化编码注意事项:

  • 结构的层次不能太深,一般为3-5层即可。一般综合工具为了获得更好的综合效果,特别是为了使综合结果所占面积更小,会默认将RTL代码的层次打平(Flatten)。有时为了在综合后仿真和布局布线后的时序仿真中比较方便的找一些中间信号,比如子模块的端口信号等,可以在综合工具中设置保留结构层次,以便于仿真信号的查找和观察。

  • 顶层模块最好仅仅包含对所有模块的组织和调用,而不应该完成比较复杂的逻辑功能。较为合理的顶层模块由输入/输出管脚声明、模块的调用与实例化、全局时钟资源、全局置位/复位、三态缓冲和一些简单的组合逻辑等机构。

  • 素有的I/O信号,如输入/输出/双向信号等描述都在顶层模块完成。

  • 子模块的合理划分非常重要,应该综合考虑子模块的功能、结构、时序和复杂度等多方面因素。

2、模块划分技巧

 

 

 

 

 

 

 

作者 博文
1、 《Intel FPGA/CPLD设计高级篇》
   

 

你可能感兴趣的:(FPGA基础进阶)