FPGA学习之模块化设计概述

时间:2025-04-28  作者:Diven  阅读:0

模块化设计是FPGA设计中一个很重要的技巧,能够使一个大型设计的分工协作、仿真测试更加容易,代码维护或升级更加便利。

FPGA学习之模块化设计概述

如图8.28所示,一般整个设计的顶层只做例化,不做逻辑。然后一个顶层下面会有模块A、模块B、模块C等等,模块A/B/C下又可以分多个子模块实现。

图8.28 模块层次设计

如此一来,就可以将大规模复杂系统按照一定规则划分成若干模块,然后对每个模块进行设计输入、综合,并将实现结果约束在预先设置好的区域内,最后将所有模块的实现结果有机地组织起来,就能完成整个系统的设计。

对于顶层模块的设计,主管设计师需要完成顶层模块的设计输入与综合,为进行模块化设计实现阶段的第一步即初始预算阶段(Initial Budgeting Phase)做准备。

对于子模块的设计,多个模块的设计者相对独立地并行完成各自子模块的设计输入与综合,为进行模块化设计实现阶段的第二步即子模块的激活模式实现(Active Module Implementation)做准备。

模块化设计的实现步骤是整个模块化设计流程中最重要、最特殊的,包含:

●  初始预算,本阶段是实现步骤的第一步,对整个模块化设计起着指导性的作用。在初始预算阶段,项目管理者需要为设计的整体进行位置布局,只有布局合理,才能够在最大程度上体现模块化设计的优势;反之,如果因布局不合理而在较后的阶段需要再次进行初始预算,则需要对整个实现步骤全面返工。

●  子模块的激活模式实现(Active Module Implementation),在该阶段,每个项目成员并行完成各自子模块的实现。

●  模块的最后合并(Final Assembly),在该阶段项目管理者将顶层的实现结果和所有子模块的激活模式实现结果有机地组织起来,完成整个设计的实现步骤。

模块划分的基本原则是,子模块功能相对独立,模块内部联系尽量紧密,而模块间的连接尽量简单。对于那些难以满足模块划分准则的具有强内部关联的复杂设计,并不适合采用模块化设计方法。

本实验,我们就要来体验一把模块化设计。如图所示,在这个设计中,我们的顶层模块是cy4.v,在此之前的实例中,我们都只有孤零零的一个cy4.v是源代码文件,所有的逻辑代码都写在这个文件中,但是这个实例开始,我们将使用模块化的设计,将各个不同的独立的功能逻辑代码分别写在不同的源文件中,然后通过“例化”的方式,将之间的接口互联起来。

这个例子中,cy4.v文件里面其实几乎是没有具体的逻辑功能的,只是做一些基本的例化和互联,将下面的5个功能模块相关的接口信号都连接起来。如图8.29所示,还具体层级的关系,一目了然,非常易于查看和编辑管理。

图8.29 模块层次图

2板级调试

参考前面的例程,将本实例生成的sp6.bit文件烧录到FPGA中,接着我们就能看到D2、D3、D4和D5这4个LED完全同步的进行闪烁。当然了,这也至少证明了我们的PLL输出的4个时钟相互之间所呈现的倍频关系。

猜您喜欢

电源监控系统作为保障电力系统安全稳定运行的关键设备,其调试工作很重要。选择合适的定额是调试工作顺利进行的前提,也是确保系统稳定可靠运行的关键因素。为什么要关注定...
2024-10-19 00:00:00

信号继电器是重要的电气元件,应用于各个领域。在工业自动化中,信号继电器用于控制和监测设备的运行状态,确保生产流程的顺畅。在交通信号系统中,继电器负责管理信号灯的...
2013-01-21 00:00:00

2R2是一种用于表示贴片电阻阻值的简写形式,实际上代表的是2.2欧姆。这种表示方法在电子领域非常常见,尤其是在电路图和元器件清单中。字母R在这里代表小数点,将数...
2024-11-29 10:26:25

贴片电阻是应用于电子设备中的被动元件,其主要功能是限制电流的流动,并在电路中起到分压、分流等作用。电子技术的发展,贴片电阻小型化、高精度和高可靠性而被越来越多的...
2025-04-14 19:30:03

DC-DC电源芯片是高效的电源转换器,应用于电子设备中,以实现不同电压等级之间的转换。能够将直流电源的电压调节至所需水平,确保设备在稳定的电压下运行,提高了能量...
2010-09-10 00:00:00


在自动化的工业生产中,光电传感器作为实现精准检测与控制的核心部件,扮演着举足轻重的角色。明治传感作为一家在光电传感器领域深耕多年的企业,我们不仅对光电传感器的设...
2024-10-15 08:05:00

电解电容是电子设备中重要的部件,尤其是400V4.7uF电解电容。很多时候,我们需要对其进行代换。本文将介绍如何进行代换,以及需要注意的事项。确认电容参数代换前...
2025-04-12 11:31:08

贴片电阻上的512并不是直接代表阻值的大小,而是采用一种数字编码表示法。理解这种编码方式,就能轻松解读出电阻的实际阻值。512是三位数编码,其中前两位数字51代...
2024-11-29 10:25:43

2 时钟周期约束时钟周期约束是用于对时钟周期的约束,属于时序约束中最重要的约束之一。本章主要讲解目前主流开发环境Vivado中的时钟约束命令。a.crea...
2023-08-14 18:25:00