中文 英语
知识中心
导航
知识中心

模型和抽象

模型是设备的抽象
受欢迎程度

描述

不讨论模型就不能描述流。模型是设备的抽象。许多模型,比如用Verilog或VHDL编写的模型,都是可执行的。可执行意味着一个工具,如模拟器或仿真器,可以练习模型,并在模拟时产生结果。其他模型不是可执行的,而是包含可以被工具读取、操作和写入的信息。这些模型,比如覆盖模型,可以控制流。

大多数与设计相关的模型都是可执行模型。这些可以是许多抽象,包括SPICE、晶体管、RTL或许多ESL抽象之一。抽象意味着模型的某个方面对于特定类型的分析来说并不重要。SoC流的设计往往是时间轴、数据轴或功能轴的抽象。ESL建模的引入增加了三种额外的抽象形式,即并发性、通信和可配置性。每个轴的简要描述提供给她,但是那些想要抽象分类的完整描述的人应该咨询ESL模型及其应用:电子系统级别设计与实践验证(嵌入式系统)

时间的抽象
时间轴定义了模型中的时间。典型的计时类型可能是部分有序的,这意味着某件事情的开始和结束只能根据与其他事情在此特定执行中开始和结束的关系来确定。指令周期、周期近似和周期精确都有一个已知周期的实际时钟的概念,因此实际时间是已知的。然而,不同程度的准确性仍然是可能的,因为重要事件之间经过的时钟周期的确切数量有一定程度的不确定性。设计流程中的某些任务需要子时钟周期精度,模拟设计通常具有必要的计时精度,以确保所有变化都是分段线性的。

数据抽象
数据轴定义了数据的精度级别。在最高级别上,数据可以被抽象为一个事件,而没有实际数据的任何实际概念。在ESL流中,通常会处理包含数据包的事务,这些数据包与最终系统中实际组织数据的方式没有对应关系。设计使用整数、浮点值或类似的数据类型的概念,其数值精度是已知的,但在硬件中如何表示是未知的。位逻辑提供了将值映射到存储它的硬件。

功能抽象
它试图定义操作本身的精度。例如,一个数学公式定义了优先级而不是顺序。算法必须调度,这通常是在高级综合中执行的操作。即使在寄存器传输级别,顺序仍然有些松散,依赖关系分析可以允许进行共享、重新排序或其他类型的优化。

并发性
并发性定义了可以同时执行的应用程序的处理或执行量。实现不必利用所有可用的并发性,因为这可能会产生不符合设计的非功能性需求的解决方案,例如成本、大小或功耗限制。并发性有时会受到语言中嵌入的计算模型的限制。例如,C语言是一种顺序语言,因此工具必须通过执行依赖分析来提取模型中可能存在的可用并发性。其他语言允许直接描述并发性。

通信
当存在多个处理元素时,它们之间必须进行通信。这种沟通可以采取多种形式,并且高度依赖于最终解决方案的体系结构。非常细粒度的并行性,如指令内的操作或专用硬件,自然由点到点通信或管道处理。另一方面,需要通信的两个软件线程可能使用某种形式的共享内存来彼此通信。例如,全软件解决方案可以使用共享内存,或者在共享内存之上分层的管道。多处理器软件解决方案可以使用硬件fifo或处理器之间的队列。

并发性和通信在某种程度上与技术解决方案联系在一起。一般来说,较粗的并发级别可以使用更通用、共享的通信形式,而非常精细的并发级别则需要更专用、更快的访问方法。

可配置性
设计有多固定?ASIC通常将设计的所有方面都嵌入到硬件中,并且它们不能被修改,但在许多情况下,一定程度的灵活性被内置到设备中。

大多数人会认为软件是可配置的,但是软件所运行或嵌入的平台的可配置性同样重要。在这方面,硬件和软件之间的唯一区别是交付机制。用C或c++等语言编写的软件,在设计时进行修改,并在现有的硬件解决方案上进行编译,但一旦发布,就不能在现场轻松修改,尽管在一些设备上可能存在从网络下载新的或修改过的编译可执行文件的机制。另一方面,Java代码可以针对不同的硬件进行修改或重定向,因为编译步骤被推迟到接近执行时,因此具有更多的可配置性。

专用的固定功能硬件解决方案通常非常严格,只能执行单一任务。具有固定指令集的处理器也被认为是固定解决方案。然而,具有可扩展指令集的处理器具有一定程度的可配置性。这种可配置性由设计路径中的工具处理。硬件也可以构建为可配置的。例如,串行/反序列化(SerDes) I/O块可以配置为支持许多不同的串行协议。许多通信处理器还可以为这些通信机制支持更高级别的协议。可重新编程结构,如FPGA或PLD,可以在启动时重新编程,甚至可能在系统运行期间重新编程。

Baidu