过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOP℃Bui1der会自动更新 这些头文件。SOPC Builder也会为系统中现有的每个外设生成定制的C和汇编函数库。例 如,如果系统包括一个UART,然后SOPC Builder就会访问UART的寄存器定义一个C结构, 生成通过UART发送和接收数据的C和汇编例程。 Altera SOPC Builder-nios system 回 Fee yttem Module Vew Help Avalon Modules Syem Cnck F*mcy问西 ◆Arn20G ◆Uw0 efned aetnce 金与e 一a0者由14物vn) ◆UAT5222s0r 一tn磁tridge (avelon地】 MESsS ErhancedUAR CAN20 Ntwor Cortrol ■ Abers hloe 20 CPU esion On-ip Mnory 0AM on00401000 0x00801 ◆hn减teaC50 dma_controller om【1w0 -mCoS阿Cortiole n0o77 ●SDRAM Cer由ole ◆fhh格noy 于辅 U风5ap0h0OoCy1U U3522e8pMon时40041 DAA ◆p正wo Aters PO2 Nos Tarpet Move Lb Movs Dowe 42n物 图1-1S0 PC Builder GUI界面 为了满足第三方把自己的部件添加到S0 PC Builder列表中,从而把SOPC Builder作为 集成和重用自己专用模块的设计工具,Altera开放了SOPC Builder流程的硬件和软件接口, 允许第三方象A1 ltera一样有效地管理SOPC部件。围绕着开放可扩展标准设计的SOPC Builder能够生成和连接定制模块,称之为“部件”。在这个标准下,所定义的系统配置文 件格式称为System PTF文件。该文件是系统的配方,它定义了SOPC Builder生成完整系统 必需的详细信息。当创建一个新的系统时,SOPC Builder生成唯一的系统PTF文件。系统 PT℉文件的内容随着用户通过图形用户界面对系统的编辑而改变。另外,还定义了部件专用 信息的文件格式,称为Class PTF文件。Class PTF包含SOPC Builder配置和生成部件所 需的详细信息。每一个IP模块都有一个class.ptf文件,SOPC Builder中P(Intelligent Property)模块出现在SOPC Builder图形用户界面的左侧,它显示了所有可用的P模块。 如果用户要向SOPC Builder库里增加新的IP模块,则需要创建一个class.ptf文件。 系统PT℉文件类似于一个数据库文件,存储了系统的设计信息。每一个系统PT℉文件 都包含了以下信息: ·系统中所有的模块的列表 ·每一个模块的信息,如: 模块特定的总线接口信号 用户自定义参数设置(如果有的话) 用于综合和模拟模块的HDL文件列表
过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPC Builder 会自动更新 这些头文件。SOPC Builder 也会为系统中现有的每个外设生成定制的 C 和汇编函数库 。例 如,如果系统包括一个 UART,然后 SOPC Builder 就会访问 UART 的寄存器定义一个 C 结构, 生成通过 UART 发送和接收数据的 C 和汇编例程。 图 1-1 SOPC Builder GUI 界面 表中,从而把 SOPC Builder 作为 集成 义的系统配置文 格式称为 System PTF 文件。该文件是系统的配方,它定义了 SOPC Builder 生成完整系统 必需 PC Builder 生成唯一的系统 PTF 文件。系统 PTF 外,还定义了部件专用 息的文件格式,称为 Class PTF 文件。Class PTF 包含 SOPC Builder 配置和生成部件所 需的 信息: 为了满足第三方把自己的部件添加到 SOPC Builder 列 和重用自己专用模块的设计工具,Altera 开放了 SOPC Builder 流程的硬件和软件接口, 允许第三方象 Altera 一样有效地管理 SOPC 部件。围绕着开放可扩展标准设计的 SOPC Builder 能够生成和连接定制模块,称之为“部件”。在这个标准下,所定 件 的详细信息 。当创建一个新的系统时,SO 文件的内容随着用户通过图形用户界面对系统的编辑而改变。另 信 详细信息。每一个 IP 模块都有一个 class.ptf 文件,SOPC Builder 中 IP(Intelligent Property)模块出现在 SOPC Builder 图形用户界面的左侧,它显示了所有可用的 IP 模块。 如果用户要向 SOPC Builder 库里增加新的 IP 模块,则需要创建一个 class.ptf 文件。 系统 PTF 文件类似于一个数据库文件,存储了系统的设计信息。每一个系统 PTF 文件 都包含了以下 · 系统中所有的模块的列表 · 每一个模块的信息,如: - 模块特定的总线接口信号 - 用户自定义参数设置(如果有的话) - 用于综合和模拟模块的 HDL 文件列表
·其他任何用于SOPC Builder生成系统模块的信息 系统PTF文件总有一个SYSTEM的顶层部分。这部分的名称与系统PTF文件名以及设 计的系统模块名称相同。例如,设计的系统模块名为fan control processor,.则系统PTF文 件名为fan control processor..ptf,而该文件中有如下的顶层SYSTEM节: SYSTEM fan control processor (..design data specific to this system...} 系统生成程序能够仅根据PT℉文件中的系统信息,以及包含了系统所使用P模块的库 来生成系统。系统PTF文件不仅保存了用户定义的信息,而且也保存了SOPC Builder临时 的内部结果。例如,系统生成程序的开始部分会向系统PTF文件写入数据,这些数据可能 被系统生成程序的后续部分所使用。换句话说,系统PT℉文件中的数据不全是根据用户输 入产生的。 SOPC Builder图形用户界面启动时,会自动搜索已安装的IP模块。SOPC Builder主窗 口中的左侧模块池内显示了所有发现的IP模块列表。SOPC Builder通过在一个搜索路径中 的所有目录下搜索名为class.ptf的文件来获得IP模块列表。一般来说,和IP模块相关的所 有文件都放置在P模块的class.ptf文件所在的目录或其子目录下。 SOPC Builder对于搜索到的class.ptf文件,要确定其是否包含一个有效的、语法正确的 IP模块描述。class.ptf文件至少要包含足够的信息以便P模块能显示在图形用户界面的模 块池内,模块池内显示的P模块与搜索到的class.ptf文件是一一对应的。 class.ptf文件总有一个顶层的CLASS节,这一节的名称与IP模块的正式名称相同。所 谓的正式名称不一定和图形用户界面模块池内显示的字符相同。下面是一个描述UART模 块的class.ptf文件的略写: CLASS altera avalon uart { ASSOCIATED FILES 4.4 } MODULE DEFAULTS { class "altera avalon uart"; } CLASS节的名称要与CLASS/MODULE DEFAULTS中的class参数一致,通常这个名 称也是class..ptf文件所在的目录名。这个名称即为P模块的正式名称。所有搜索到的,且 语法正确有效的class.ptf文件集合,就构成了SOPC Builder的P模块数据库。SOPC Builder 从不修改任何class.ptf文件,class..ptf文件仅由IP模块的设计者来修改。 class.ptf文件描述SOPC Builder的P模块,而系统PTF文件保存用户的系统设计信息。 P开发者需要注意,有一些PTF参数会同时出现在class.ptf文件和系统PTF文件中。class.ptf 文件中的数据,通过一个简单的规则传输到系统PT℉文件中。数据的传输是单向的,即 class..ptf文件从不会被SOPC Builder工具所修改。系统PTF文件会为系统中P模块的每一 个实例建立一个MODULE节。 图1一2是SOPC Builder利用Component PTF文件和System PTF文件配置和生成系统
· 其他任何用于 SOPC Builder 生成系统模块的信息 系统 PTF 文件总有一个 SYSTEM 的顶层部分。这部分的名称与系统 PTF 文件名以及设 计的 sor .. design data specific to this system...} 系统生成程序能够仅根据 PTF 文件中的系统信息,以及包含了系统所使用 IP 模块的库 来生成系统。系统 PTF 文件不仅保存了用户定义的信息,而且也保存了 SOPC Builder 临时 的内部结果。例如,系统生成程序的开始部分会向系统 PTF 文件写入数据,这些数据可能 被系统生成程序的后续部分所使用。换句话说,系统 PTF 文件中的数据不全是根据用户输 入产生的。 SOP 动搜索已安装的 IP 模块。SOPC Builder 主窗 口中的左侧模块池内显示了所有发现的 IP 模块列表。SOPC Builder 通过在一个搜索路径中 的所有目录下搜索名为 class.ptf 的文件来获得 IP 模块列表。一般来说,和 IP 模块相关的所 有文 DULE_DEFAULTS 中的 class 参数一致,通常这个名 称也 class.ptf 文件和系统 PTF 文件中。class.ptf 件中的数据,通过一个简单的规则传输到系统 PTF 文件中。数据的传输是单向的,即 class.ptf 文件从不会被 SOPC Builder 工具所修改。系统 PTF 文件会为系统中 IP 模块的每一 个实例建立一个 MODULE 节。 图 1-2 是 SOPC Builder 利用 Component PTF 文件和 System PTF 文件配置和生成系统 系统模块名称相同。例如,设计的系统模块名为 fan_control_processor,则系统 PTF 文 件名为 fan_control_processor.ptf,而该文件中有如下的顶层 SYSTEM 节: SYSTEM fan_control_proces {. C Builder 图形用户界面启动时,会自 件都放置在 IP 模块的 class.ptf 文件所在的目录或其子目录下。 SOPC Builder 对于搜索到的 class.ptf 文件,要确定其是否包含一个有效的、语法正确的 IP 模块描述。class.ptf 文件至少要包含足够的信息以便 IP 模块能显示在图形用户界面的模 块池内,模块池内显示的 IP 模块与搜索到的 class.ptf 文件是一一对应的。 class.ptf 文件总有一个顶层的 CLASS 节,这一节的名称与 IP 模块的正式名称相同。所 谓的正式名称不一定和图形用户界面模块池内显示的字符相同。下面是一个描述 UART 模 块的 class.ptf 文件的略写: CLASS altera_avalon_uart { ASSOCIATED_FILES { ... } MODULE_DEFAULTS { class = "altera_avalon_uart"; } } CLASS 节的名称要与 CLASS/MO 是 class.ptf 文件所在的目录名。这个名称即为 IP 模块的正式名称。所有搜索到的,且 语法正确有效的 class.ptf 文件集合,就构成了 SOPC Builder 的 IP 模块数据库。SOPC Builder 从不修改任何 class.ptf 文件,class.ptf 文件仅由 IP 模块的设计者来修改。 class.ptf 文件描述 SOPC Builder 的 IP 模块,而系统 PTF 文件保存用户的系统设计信息。 IP 开发者需要注意,有一些 PTF 参数会同时出现在 文
的流程。S0 PC Builder设计流程有两个阶段:配置一框图左边所示,和生成一框图右边所 示。SOPC Builder GUI引导用户完成两部分的配置:分别配置每个部件,整体配置系统。 部件配置需要汇总参数,所以Class PT℉文件标准包括了为这一要求定义GUI的格式。当 需要时,SOPC Builder读取该格式,产生相应的部件向导(Component Wizard)收集所需 的用户数据。SOPC Builder然后把收集的参数值存放在System PTF文件中。 配置的另一部分是系统配置,用户提供的有关处理器配置,外设连接等数据写入System PTF中。当这两部分配置都完成后,SOPC Builder进入到生成阶段,生成设计的输出文件。 SOPC Builder查阅每个Class PTF文件,允许相关的部件生成程序,它们会正确地输出特 定系统配置的硬件和/或软件文件。 简单的部件生成程序可能每次都会输出相同的文件:更多的可配置部件根据用户输入会 生成完全不同的结构。例如,Nios处理器中包括的UART可以配置为软件控制波特率,以更 多门换取更大的灵活性。这种配置选项由用户在部件配置阶段进行设置,根据这个设计,UART 生成程序产生所需UART的硬件描述。在生成阶段的最后一步,SOPC Builder创建适合于系 统部件的总线结构,把所有的部件连接在一起。 Class SOPC Configuration PTF files SOPC Generation Component SOPC Builder Component System Wizards GU川 Generation Generation System PTFfile Output Files and Libraries User- Software Simulation defined Files Files Files 图1一2SOPC系统的配置和生成 SOPC Builder让IP制作者制定有关IP应该如何连接的细节,这样能够减轻用户为每 个设计项目重新再设计(或总线结构)的工作量。而且,通过追踪整个系统的配方,就能够 用SOPC Bui1der透明地调整相应的系统软件反映硬件配置的变化
的流程。SOPC Builder 设计流程有两个阶段:配置―框图左边所示,和生成―框图右边所 示。SOPC Builder GUI 引导用户完成两部分的配置:分别配置每个部件,整体配置系统。 部件配置需要汇总参数,所以 Class PTF 文件标准包括了为这一要求定义 GUI 的格式。 当 需要时,SOPC Builder 读取该格式,产生相应的部件向导(Component Wizard)收集所需 的用户数据。SOPC Builder 然后把收集的参数值存放在 System PTF 文件中。 配置的另一部分是系统配置,用户提供的有关处理器配置,外设连接等数据写入 System PTF 中。当这两部分配置都完成后,SOPC Builder 进入到生成阶段,生成设计的输出文件。 SOPC Builder 查阅每个 Class PTF 文件,允许相关的部件生成程序,它们会正确地输出特 定系统配置的硬件和/或软件文件。 简单的部件生成程序可能每次都会输出相同的文件;更多的可配置部件根据用户输入会 生成完全不同的结构。例如,Nios 处理器中包括的 UART 可以配置为软件控制波特率,以更 多门换取更大的灵活性。这种配置选项由用户在部件配置阶段进行设置,根据这个设计,UART 生成程序产生所需 UART 的硬件描述。在生成阶段的最后一步,SOPC Builder 创建适合于系 统部件的总线结构,把所有的部件连接在一起。 图 1-2 SOPC 系统的配置和生成 SOPC Builder 让 IP 制作者制定有关 IP 应该如何连接的细节,这样能够减轻用户为每 的工作量。而且,通过追踪整个系统的配方,就能够 SOPC Builder 透明地调整相应的系统软件反映硬件配置的变化。 个设计项目重新再设计(或总线结构) 用
在S0 PC Builder下,软件也认为是一个部件,支持便捷地添加OS(Operation System)。 例如,如果把RTOS(Real-Time OS)作为一个部件添加到系统中,RTOS部件的生成程序会 检测系统中硬件以太网接口,包括TPC/IP软件库。同样地,它会检测IDE接口,包括文件 系统库和IDE器件相应的驱动。最后生成器会编译RTOS内核。 SOPC Builder的概念触及到数字系统设计每一方面,从定义独立的硬件部件,到把它 们自动地智能地连接起来,到处理器上运行的软件。在PLD设计发展过程中,在PLD内实现 CPU是必由之路,但是让基于PLD处理器可视化的工具流程也促进了可编程单芯片系统的设 计。Altera推出的SOPC Builder工具,提出了PLD的最高度设计抽象,弥补了软件和硬件 同时集成的空白。现在,我们正处于SOPC即插即用时代的前沿,其间处理器,IP模块和软 件能够一起“工作”。 1.2SOPC系统设计流程 1.2.1S0 PC Bui1der的设计流程 SOPC Builder可看作是一个以IP模块为输入,集成的系统为输出的工具。SOPC Builder 设计过程有三个主要步骤,如图1-3所示。 SOPC Builder Component Authoring System Assembly System Generation 图1-3 SOPC Builder设计流程 (1)构件开发 SOPC Builder的IP模块是由IP开发人员提供的硬件(RTL、原理图或EDIF)和软件 (C源代码、头文件等)。高级P模块可能还会包含一个相关的图形用户界面,一个 Generator Program程序,和其他支持系统参数化生成的程序。一般情况下,把一个普通的 P模块添加到SOPC Builder的P模块库中,需要做的只是建立一个描述该P的class.ptf 文件。所有的P模块够都必须有一个class.ptf文件。 (2)系统集成 用户创建和编辑一个新的系统时,一般要从库中选择一些P模块,逐个地配置这些P 模块,以及设置整个系统的配置(如,指定地址映射和主/从端口连接等)。在这个过程中, 用户的设置都会保存在系统PTF文件中,一般不会有其他文件的产生或修改。 SOPC Builder内包括和安装了一些IP模块,其他一些P模块可以从Altera或第三方(如 AMPP)P提供商处获得,可能需要另外安装。 (3)系统生成 当用户在完成了SOPC Builder中的设计活动之后,最后按下Generate按钮,或从命令 行执行系统生成程序时,系统生成就开始了。系统生成的结果是一系列设计文件,如HDL
在 SOPC Builder 下,软件也认为是一个部件,支持便捷地添加 OS(Operation System)。 例如,如果把 RTOS(Real-Time OS)作为一个部件添加到系统中,RTOS 部件的生成程序会 检测系统中硬件以太网接口,包括 TPC/IP 软件库。同样地,它会检测 IDE 接口,包括文件 系统库和 IDE 器件相应的驱动。 SOPC Builder 的概念触及到数字系统设计每一方面,从定义独立的硬件部件,到把它 接起来,到处理器上运行的软件。在 PLD 设计发展过程中,在 PLD 内实现 CPU 1.2 SOPC 系统设计流程 1.2 PC Builder 设计 最后生成器会编译 RTOS 内核。 们自动地智能地连 是必由之路,但是让基于 PLD 处理器可视化的工具流程也促进了可编程单芯片系统的设 计。Altera 推出的 SOPC Builder 工具,提出了 PLD 的最高度设计抽象,弥补了软件和硬件 同时集成的空白。现在,我们正处于 SOPC 即插即用时代的前沿,其间处理器,IP 模块和软 件能够一起“工作”。 .1 SOPC Builder 的设计流程 SOPC Builder 可看作是一个以 IP 模块为输入,集成的系统为输出的工具。SO 过程有三个主要步骤,如图 1-3 所示。 图 1-3 SOPC Builder 设计流程 。一般情况下,把一个普通的 IP 模 编辑一个新的系统时,一般要从库中选择一些 IP 模块,逐个地配置这些 IP 模块,以及设置整个系统的配置(如,指定地址映射和主/从端口连接等)。在这个过程中, 用户的设置都会保存在系统 PTF 文件中,一般不会有其他文件的产生或修改。 SOPC Builder 内包括和安装了一些 IP 模块,其他一些 IP 模块可以从 Altera 或第三方(如 AMPP)IP 提供商处获得,可能需要另外安装。 (3)系统生成 当用户在完成了 SOPC Builder 中的设计活动之后,最后按下 Generate 按钮,或从命令 行执行系统生成程序时,系统生成就开始了。系统生成的结果是一系列设计文件,如 HDL (1)构件开发 SOPC Builder 的 IP 模块是由 IP 开发人员提供的硬件(RTL、原理图或 EDIF)和软件 (C 源代码、头文件等)。高级 IP 模块可能还会包含一个相关的图形用户界面,一个 Generator_Program 程序,和其他支持系统参数化生成的程序 块添加到 SOPC Builder 的 IP 模块库中,需要做的只是建立一个描述该 IP 的 class.ptf 文件。所有的 IP 模块够都必须有一个 class.ptf 文件。 (2)系统集成 用户创建和
文件,SDK(software-support)目录和模拟工程文件等等。 1.2.2S0 PC Bui1der的设计阶段 为了更好地理解三个步骤中的具体活动,图1-4把整个过程分成了若干个阶段。作为P 开发者,可以指定在哪些阶段,对P模块要做哪些操作。系统PT下文件中的特定内容在某 些阶段也需要设置或使用,每一个PTF节和PTF参数都在特定的阶段使用或设置。系统生 成步骤中的所有阶段,都以一个单向的固定顺序来执行。一旦开始系统生成,则所有的活动 会不间断地按顺序执行下去,除非产生错误或由用户中止。 系统集成步骤中的所有活动,顺序上没有严格的要求。一般的顺序是:添加、配置和集 成系统。但由于系统集成过程是一个交互的编辑过程,用户可能会不只一次地修改模块配置。 所以一般以添加模块到系统的阶段开始,其他的三个阶段活动(编辑、系统配置和绑定)会 按不确定的顺序进行。无论什么样的顺序,一旦用户按下了Generate按钮,则系统集成步 骤就开始了。 Development Step Phase Flow Component Authoring Authoring Add System Assembly Edit System Configuration Bind SDK for CPU 0 SDK Generation for CPU m System Generation Generator Program for Module 0 。 Generator Program for Module m Bus Generation Top Module Generation Project File Generation Done QUARTUS∥ (Synthesis) 图1-4 SOPC Builder的开发阶段 (1)构件开发阶段 P开发者经常会希望拿一个现成的具有微处理器总线接口的逻辑模块,然后转换成 SOPC Builder的IP模块。这需要如下的三个主要步骤: 1.建立一个名为clss.ptf的简单文本文件(通常这个过程可以简化,比如通过复制一个类 似P模块的class..ptf文件,然后修改其中的某些参数)
文件,SDK(software-support)目录和模拟工程文件等等。 1.2.2 SOPC Builder 的设计阶段 为了更好地理解三个步骤中的具体活动,图 1-4 把整个过程分成了若干个阶段。作为 IP 开发者,可以指定在哪些阶段,对 IP 模块要做哪些操作。系统 PTF 文件中的特定内容在某 些阶段也需要设置或使用,每一个 PTF 节和 PTF 参数都在特定的阶段使用或设置。系统生 成步骤中的所有阶段,都以一个单向的固定顺序来执行。一旦开始系统生成,则所有的活动 会不间断地按顺序执行下去,除非产生错误或由用户中止。 系统集成步骤中的所有活动,顺序上没有严格的要求。一般的顺序是:添加、配置和集 成系统。但由于系统集成过程是一个交互的编辑过程,用户可能会不只一次地修改模块配置。 所以一般以添加模块到系统的阶段开始,其他的三个阶段活动(编辑、系统配置和绑定)会 按不确定的顺序进行。无论什么样的顺序,一旦用户按下了 Generate 按钮,则系统集成步 骤就开始了。 图 1-4 SOPC Builder 的开发阶段 (1)构件开发阶段 IP 开发者经常会希望拿一个现成的具有微处理器总线接口的逻辑模块,然后转换成 SOPC Builder 的 IP 模块。这需要如下的三个主要步骤: 1. 建立一个名为 class.ptf 的简单文本文件(通常这个过程可以简化,比如通过复制一个类 似 IP 模块的 class.ptf 文件,然后修改其中的某些参数)