跳到主要内容

数字系统设计中的嵌入式系统与超大规模集成电路

嵌入式系统vs. VLSI

嵌入式系统和超大规模集成电路的区别是什么?

当我们从设计和实现的角度考虑集成电路时,人们往往会看到具有专用计算能力的嵌入式系统的出现。从本质上讲,任何使用专用的、特定于应用程序的软件来操作数据的数字系统都是嵌入式系统,它可以使用超大规模集成(VLSI)在特定于硬件的级别上实现。

在这两种设计方法中都有编程的元素。嵌入式系统设计的重点是编写在灵活的硬件上实现的代码,而超大规模集成电路的重点是将编程指令转换为集成电路的结构。以下是您需要了解的关于嵌入式系统与数字系统的VLSI设计之间的异同。

嵌入式系统vs. VLSI设计

解释嵌入式系统和超大规模集成电路之间的区别需要一个正确的类比:嵌入式系统之于软件,就像超大规模集成电路之于硬件。嵌入式系统运行在专用的可编程逻辑器件(骑士)。这些集成的系统没有狭义定义的功能或应用。是的,它们处理数据,但是定义这些组件如何处理数据的编程指令需要在软件级别上定义。

这通常使用高级编程语言完成,然后使用特定的编译器将其编译成机器级字节代码。不同的pld,特别是mcu,有自己的专用语言和编译器,用于将编程指令转换为机器级代码。读取和执行这些代码的集成电路已经设计好了,并且是固定不变的。

这与集成电路(如片上系统(SoC))中发生的情况形成对比,SoC通常是作为特定应用集成电路(ASIC)构建的。这些集成电路设计用于在特定应用中执行非常特定的功能。一个很好的例子是在汽车雷达;集成了标准化振荡器、放大器级、滤波、传输和接收功能以及信号处理功能的收发器ic可从许多组件制造商获得。这些soc非常适合嵌入式生态系统,并有助于减少中央处理器的工作量。

VLSI设计流程允许这些soc和其他asic在集成电路级别上使用一组标准的软件语言和库来构建晶体管。在VLSI设计过程中构建的代码定义了将运行代码的集成电路的体系结构;实际上你是在设计一个运行特定软件指令的特定硬件架构.在嵌入式系统设计,编程指令需要适应硬件,而在VLSI中,硬件被设计为运行特定的编程指令。

嵌入式系统与超大规模集成电路之间的链接

嵌入式系统的软件和设计vs. VLSI

VLSI设计流程和语言也可用于构建MCU、FPGA或其他可重构逻辑设备,用于执行嵌入式软件。嵌入式系统设计通常集中在软件方面,其中代码是在现有平台上运行的,如MCU或FPGA。由于VLSI设计更接近硬件设计,它需要仔细注意地板规划、布局、晶体管尺寸、路由、时钟和电源分配以及定时。

超大规模集成电路和嵌入式系统编程

嵌入式系统设计和VLSI需要为您的下一个应用程序选择合适的编程语言。嵌入式系统将运行在带有操作系统(如Linux内核)的MCU或CPU上,可以使用包含专门库的标准语言进行编程。一些例子包括C/ c++、Rust、Python等。

您的组件制造商通常会为这些语言提供所需的库和编译器,这将允许您专注于功能,而不是特定的机器级代码转换。在VLSI中,用于集成电路设计的编程语言称为硬件描述语言(hdl)。这些语言包括VHDL、Verilog、System Verilog、C和脚本语言,如Perl和TCL。在VLSI中,团队遵循的开发方法与用于构建新产品的HDL一样重要。

嵌入式系统生产的集成电路vs. VLSI设计

这可能是你的超大规模集成电路设计过程的产物…

一旦创建了用于嵌入式系统的新逻辑设备,就需要创建一些基本的PCB布局指令,以便设计人员可以使用您的新产品。这应该包括一些建议分层盘旋飞行设计以确保信号和电源完整性,定义用于路由的信令标准,并列出支持这些产品所需的任何其他组件。任何数据密集型应用程序都很可能需要与一些外部内存连接,这通常使用microSD卡或板载DDR内存实现。

硅IP、定制IC设计公司和大型组件制造商通常会构建评估板,以允许嵌入式系统开发人员在新产品上编写和测试他们的代码。这是SBC、模块上系统(SoM)、COM市场的标准实践。这里还有软件开发的另一个元素;如果你使用VLSI来构建自定义ic,你可能需要创建设计库或运行在新产品上的操作系统。

无论您是为嵌入式系统设计还是为新的集成电路设计VLSI,您都需要正确的PCB设计和分析软件构建评估板,SoMs, sbc或其他成品。Allegro PCB Designer凯蒂丝也吃饱了分析工具套件可以帮助您为新产品构建电路板,并在整个下一个数字系统中检查信号和电源完整性。的Allegro FPGA系统规划器包是理想的将您的想法转换成fpga上的机器级代码。

如果您想了解更多Cadence如何为您提供解决方案,跟我们和我们的专家团队谈谈吧