首页 > 技术 > 内容

如何开始做可编程逻辑设计的架构?

时间:2026-01-27  作者:Diven  阅读:0

本篇整理自Adam Taylor的设计教学博客。

在我写的大多数博客里,都演示或解释了FPGA/SoC的设计细节技术。但是这篇文章将有所不同,因为在这里我要提出另外一个问题。

你该如何开始做可编程逻辑设计的架构?

在我有一次同时在为三个FPGA项目设计架构(作为卫星开发的一部分)时,这个问题浮现在我的脑海中。当然,由于最终应用场景的原因,该架构受到了主承包商和航天局的多次审查。我将尽可能详细的画出架构图,以便让我的设计团队可以很轻松地从中进行工作。

尽可能详细地画出架构图,在本子上就可以

可编程逻辑的架构设计可能非常复杂,因此好的架构通常要定义以下几个元素:

模块需要实现所需的功能,当然,这些模块也可以包含层次结构。

每个模块接收时钟和时钟使能,必须考虑如果信号跨越多个时钟域时的跨时钟域需求。

每个模块收到的复位。就像时钟一样,必须考虑每个模块的复位要求。

架构中每个模块接口信号相互连接

高效的架构和实现应尽可能利用供应商的现有IP核。确定可以在整个体系结构中重用的模块也是明智的,例如控制算法或通信总线。我的设计中有3个FPGA需要构建,因此识别可以通用的模块将在开发和验证过程中节省大量时间。

接口重用十分划算,因为是标准化模块。使用标准接口(例如AXI,AXI Stream和APB)作为模块接口,可以在多个设计中轻松复用。在我的这个项目中,可能不需要复用IP核,但在将来的开发中可能需要相同的功能。

在我的复杂接口(如ADC/DAC接口、AXI或存储接口)架构图中,我更喜欢使用一类接口类型,该类型包含所有较低级别的信号。然后可以在体系结构文档中定义接口类和所有信号。这种方法有几个优点:使架构图更简单,并使修改(例如 信号添加或重命名)只需要在一个位置进行。

各种接口类型的定义

信号列表和时序图

在创建架构时,我的传统方法是从笔和纸开始,勾勒出主要的设计模块和关键界面。完成此操作后,我将使用Visio将其电子图形化,以使其添加在文档中时看起来更加专业。

当然,此图需要显示块之间的所有信号和信号类别。理想情况下,工程师应能够拾取架构和架构文档,并根据其配件开始开发或验证。

在研究架构时,我对其工程师如何开发可编程逻辑架构感到好奇,因此我在多个FPGA讨论板/论坛上提出了问题并收到了很多有趣的回答。大多数受访者表示使用了常见的图纸设计套件,包括:

· MICrosoft Visio (https://www.mICrosoft.com/en-gb/microsoft-365/visio/flowchart-software

· draw.io (https://app.diagRAMs.net/)

· yED (https://www.yworks.com/products/yed)

· Dia (http://dia-installer.de)

· OmniGraffle (https://www.omnigroup.com/omnigraffle)

· LibreOffice Draw (https://www.libreoffice.org/discover/draw/)

· Gliffy DiagRAMs for Confluence (https://marketplace.atlassian.com/apps/254/gliffy-diagrams-for-confluence)

· Lucidchart (https://www.lucidchart.com/)

· XMind (https://www.xmind.net/)

我们可以使用这里所有的绘图包创建漂亮的架构图,有趣的是,有几个人回答说使用Symbolator,而我并不熟悉。

Symbolator是Windows和Linux中的命令行工具,将读取VHDL、Verilog和组件声明然后生成组件图。然后可以在您首选的图纸包中使用这些symbol。

直接安装Symbolator。我们可以使用pip进行安装,并注意您安装的时候可能需要安装一些其软件,包括Pycairo,PyGObject和Python-gi-cairo。完成此操作后,您可以使用各种不同格式和表示样式的组件声明创建组件symbol。

自从我学习到有关Symbolator的知识以来,我感觉这工具还挺好用,于是决定将用到我正在设计的三个架构工作中。

用Symbolator进行block设计

Symbolator的介绍地址:https://kevinpt.github.io/symbolator/

我非常喜欢使用清晰的时钟和数据接口组定义来创建block。这一次,我使用Symbolator和Visio完成了架构设计,但对于各位架构师来说,每个人都有每个人的习惯。大家更习惯如何开展FPGA/SoC架构设计工作呢?

猜您喜欢


核相仪是用于测量和分析核辐射的设备,常见的核相仪主要有几种类型,各自具有不同的特点和应用场景。气体探测器核相仪利用气体的电离特性来检测辐射,适用于低能量辐射的测...
2008-04-17 00:00:00
固态电容是电子元件中重要部分。耐压值是影响其性能关键因素。本文将探讨固态电容的耐压值,帮助大家更好理解。什么是耐压值?耐压值是电容能承受最大电压。若超过此值,电...
2025-03-24 16:30:35
许多人在更换LED灯时都会产生这样的疑问:灯珠和驱动器不匹配能用吗?答案是不建议使用。LED灯珠和驱动器就好比汽车的发动机和变速箱,两者需要协同工作才能发挥最佳...
2024-10-10 00:00:00
贴片电阻体积小巧,测试方法需兼顾准确性和效率。常用的测试方法主要有以下几种:万用表测量: 这是最简单直接的方法,适合快速判断电阻值是否在标称范围内。 使用万用表...
2024-11-26 11:29:28
内六角圆柱头自攻螺钉是应用于机械、电子和建筑等领域的重要紧固件。根据不同的分类标准,这种螺钉可以分为多种类型。从材料上看,内六角圆柱头自攻螺钉主要有碳钢、不锈钢...
2014-08-29 00:00:00
IrDA红外收发模块主要可以分为以下几类:首先是基本的IrDA收发模块,这类模块通常用于短距离数据传输,具有较高的传输速率和稳定性,适合各种便携设备。其次是红外...
2009-09-03 00:00:00
随着生活水平的提高,电热水器成为现代家庭中不可少的生活电器。其中,水流传感器作为电热水器的重要组成部分,能够准确检测水流量,保障热水器的正常运行和使用安全。本文...
2025-11-16 15:30:05
压力传感器是工业自动化和测量领域中不可少的设备,其性能参数直接影响到测量的准确性和可靠性。量程是一个重要参数,指的是传感器能够测量的压力范围,通常以巴(Bar)...
2009-11-27 00:00:00
电子元件中,电容和电感是重要部分。焊接电容和电感并不是难事。只要掌握技巧,大家都能做好。本文将介绍电容电感的焊接方法。 准备工具焊接前,需准备工具。最基本的工具...
2025-04-02 07:00:35
加湿器是能够增加空气湿度的设备,应用于多个领域。在家庭中,尤其是在干燥的冬季,加湿器能够有效改善室内空气质量,缓解干燥引起的皮肤问题和呼吸不适,提升居住舒适度。...
2013-08-21 00:00:00