




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 SOC 的层次结构设计SOC 的结构SOC 的层次结构设计系统的仿真和测试SOC 的嵌入式指令SOC 的软硬件协同设计6.1 SOC的结构1. 定义:SOC 以电子系统的系统功能为出发点,把系统模型,处理机制,芯片结 构、 各层次电路直至器件的设计紧密结合起来, 在单芯片上完成整个系统的功能。 2.特点:SOC 以嵌入式系统为核心,集软、硬件于一体,并追求产品系统最大 包容的集成。按照 1999年国际半导体技术发展指南 (ITRS1999 , 目前组成 SOC 的模块单 元可以包括微处理器核, 嵌入式 SRAM 、 DRAM 和 FLASH 单元以及某些特定的 逻辑单元。 ITRS99
2、认为,开发 SOC 的根本目标是提高性能和降低成本 , 另外, Soc 开发的另一个重要的考虑是他的可编程特性 (通过软件、 fpga,flash 或其他手 段来实现 。1.专用硬件:为了某种专门应用的算法或功能设计的部件。可以由 ASIC 或可 编程逻辑资 源实现。2.嵌入式处理器:SOC 中集成某些专用指令集处理器。在 SOC 中,系统的控 制任务通常有 RISC CPU担任。3.片上 RAM 和 ROM :主要是满足数据处理的需要或者是存储应用软件。一般 由 SRAM 和 E2PROM 构成4. 测试电路:SOC 的芯片设计应该满足可测试性的要求,应当具有传送测试信 号所必需的接口电路,
3、以及支持芯片测试功能所必须的控制逻辑。应用方式及举例1. MP3播放器概要如果考虑一个像一台 MP3播放器那样的高容量的消费产品的内部的结构, 可定义它的一些基本功能, 如图所示。外部接口(External Interface :典型 的是 USB 接口, 但这里要求串行和并行接口, 甚至是以太网接口。 闪存(Flash Memory :存储器用于存储音乐。 根据实际的播放器的不同, 存储器的容量将会改变。MP3解码器 (MP3 Decoder:解压存储在闪存中的数据, 生成音频位流。 音频(Audio :把数字音频位流转换成模拟音频位流, 驱动外围扬声器。 CPU :连接用户接口、 显示器和
4、按钮, 使之同使用 MP3播放器的操作一 样。MP3播放器的功能可通过 SOC 技术实现。 该器件包含 MP3译码器和控制 器功能, 其中多数复 杂的性能、 功能可在 EPGA 核中由标准的、 固定的 ASIC 门和可重新配置部分实现, 如图所示。 SOC 的应用软件一般都是容积小,实时性强,以固化形式存入片上存储器中, 是一种嵌入式软件。 有的 SOC 可以集成嵌入式实时操作系统, 以满足 SOC 中实 时多任务的应用。6.2数字系统的层次结构设计芯片划分的基本准则:各个分系统之间的连线最少(1功能相关性是指在系统架构上两个不同部分之间的联系。功能相关性或者 功能相关性大的部分应该划分在同一
5、个系统内。(2 数据相关性是指两个操作所用到的操作数的相关性。 数据相关性大的操作 应该划分在同一个子系统内。(3 操作相关性是指两个操作是否可以共享一个资源。 操作相关性的划分在同 一个系统内。FPGA 模块的划分 (Design partitioning 非常重要, 除了关系到是否最大程 度上发挥项目成员的协同设计能力, 而且直接决定着设计的综合、 实现时间。 下 面是一些模块划分的原则。a. 对每个同步设计的子模块的输出使用寄存器(registering 。也即用寄存器 分割同步时序模块的原则。 使用寄存器的好处有:综合工具在编译综合时会将 所分割的子模块中的组合电路和同步时序电路整体考
6、虑。 而且这种模块结构符合 时序约束的习惯,便于使用时序约束熟悉进行约束。b. 将相关的逻辑或者可以复用的逻辑划分在同一模块内。 这样做的好处有, 一方面将相关的逻辑和可以复用的逻辑划分在同一模块, 可以最大程度的复用资 源,减少设计消耗的面积。同时也更利于综合工具优化一个具体功能(操作在 时序上的关键路径。 其原因是, 综合工具只能同时考虑一部分逻辑, 而所同时优 化的逻辑单元就是模块,所以将相关功能划分在同一模块更有利于综合器的优 化。c. 将不同优化目标的逻辑分开。 好的设计,在规划阶段,设计者就已经思 考了设计的大概规模和关键路径, 并对设计的优化目标有一个整体上的把握。 对 于时序紧
7、张的部分,应该独立划分为一个模块,其优化目标为“ speed ” ,这种划 分方法便于设计者进行时序约束,也便于综合和实现工具进行优化。d. 将松约束的逻辑归到同一模块。 有些逻辑的时序非常宽松,不需要较高 的时序约束,可以将这类逻辑归入同一模块,如多周期路径“ multi-cycle ”等。 将这些模块归类,并指定松约束,则可以让综合器尽量的节省面积资源。e. 将 RAM/ROM/FIFO等逻辑独立划分成模块。 这样做的好处是便于综合器 将这类资源类推为器件的硬件原语, 同时仿真时消耗的内存也会少些, 便于提高 仿真速度。 (大多数仿真器对大面积的 RAM 都有独特的内存管理方式f. 合适的
8、模块规模。 规模大,利于“ Resource Sharing” 。但是对综合器同时 处理的逻辑量太大,不利于多模块和增量编译模式。1. 在 VHDL 中, 系统的互连可以通过实体和结构体描述。 实体通过端口语句,描述实体与外部系统的互连关系。一般是采用元件例化的方式进行描述。 2.利用进程的信号敏感量和全局信号进行一个实体内的各个子系统之间的互 连关系。系统 system 用实体描述:ENTITY system ISPORT(L : IN STD_LOGIC;m: OUT STD_LOGIC;END system;如果用进程描述系统 system 的构造,其描述程序如下:ARCHITECTUR
9、E structure OF system ISSIGNAL S1: STD_LOGICA:PORCESS(LS1=END PROCESS;B:PORCESS(S1m=END PROCESS;END STUCTURE;另外,实体 system 的结构体也可以用于元件例化的方式描述:ENTITY A ISPORT(P:IN STD_LOGIC;Q: OUT STD_LOGIC;END A;ENTITY B ISPORT(R:IN STD_LOGIC;S: OUT STD_LOGIC;END A;A,B 端口的说明定义了 A,B 两个子系统与外部的接口关系。 采用元件例化的方式 进行描述:ENTI
10、TY system ISPORT(L : IN STD_LOGIC;m: OUT STD_LOGIC;END system;ARCHITECTURE structure_2 OF system ISSIGNAL S1:STD_LOGIC;COMPONENGT APORT(P:IN STD_LOGIC;Q: OUT STD_LOGIC;END COMPONENT;COMPONENT BPORT(R:IN STD_LOGIC;S: OUT STD_LOGIC;END COMPONENT;BEGINA1:A PORT MAP(L,S1;B1:B PORT MAP(S1,m;END structure
11、;6.3 系统的仿真和测试仿真方法:(1交互式仿真方法:利用 EDA 工具的仿真器进行仿真,使用方便,但输入输 出不便于记录规档,当输入量较多时不便于观察和比较。1.仿真的三个阶段:(1行为仿真:目的是验证系统的数学模型和行为是否正确,对系统的描述的 抽象程度较高。在行为仿真时, VHDL 的语法语句都可以执行。(2 RTL 仿真:目的是使被仿真模块符合逻辑综合工具的要求,使其能生成门 级逻辑电路。在 RTL 仿真时,不能使用 VHDL 中一些不可综合和难以综合的语 句和数据类型。该级仿真不考虑惯性延时,但要仿真传输延时。(3门级仿真:门级电路的仿真主要是验证系统的工作速度,惯性延时仅仅是 仿
12、真的时候有用在综合的时候将被忽略。2.仿真程序的内容(1被测实体的引入。(2被测实体仿真信号的输入。(3被测实体工作状态的激活。(4被测实体信号的输出(5被测实体功能仿真的结果比较,并给 出辨别信息(6被测实体的仿真波形比较处理3.仿真要注意的地方(1仿真信号可以由程序直接产生,也可以用 TEXTIO 文件产生后读入。(2仿真程序中可以简化实体描述,省略有关端口的描述。仿真程序实体描述 的简化形式为:ENTITY 测试平台名 ISEND 测试平台名;(3对于功能仿真结果的判断,可以用断言语句(ASSORT 描述(4为了比较和分析电子系统的功能,寻求实现指标的最佳结构,往往利用一 个测试平台对实
13、体的不同结构进行仿真, 一般是应用配置语句为同一被测实体选 用多个结构体。CONFIGURATION 测试平台名 OF 被测实体名 ISFOR 被测实体的 A 的结构体名END FOR;END 测试平台名;同样,若选用结构体 B ,则配置语句可写为:CONFIGURATION 测试平台名 OF 被测实体名 ISFOR 被测实体的 B 的结构体名END FOR;END 测试平台名;4. VHDL 仿真程序结构测试平台仅仅是用于仿真, 因此可以利用所有的行为描述语言进行描述, 下表 表示了一个测试平台所包含的部分, 典型的测试平台将包括测试结果和错误报告 结果。(1产生时钟信号- Declare
14、a clock period constant.Constant ClockPeriod : TIME := 10 ns;- Clock Generation method 1:Clock = not Clock after ClockPeriod / 2;- Clock Generation method 2:GENERATE CLOCK: processbeginwait for (ClockPeriod / 2Clock = 1;wait for (ClockPeriod / 2Clock = 0;end process;(2提供仿真信号提供仿真信号可以有两种方法:绝对时间仿真和相对时间
15、仿真。在绝对时间 仿真方法中,仿真时间只是相对于零时刻的仿真时间。在相对时间仿真方法中, 仿真的时间首先提供一个初值, 在后继的时间设置中相对于该初始时间进行事件 动作。绝对时间仿真:MainStimulus: process beginReset = 1;Load = 0;Count_UpDn = 0;wait for 100 ns;Reset = 0;wait for 20 ns;Load = 1;wait for 20 ns;Count_UpDn = 1; end process;相对时间仿真:Process (ClockBeginIf rising_edge(Clock thenTB_
16、Count = TB_Count + 1;end if;end process;SecondStimulus: process beginif (TB_Count = 5 thenReset = 1;Load = 0;Count_UpDn = 0 ;ElseReset = 0;Load = 1;Count_UpDn = 1;end process;FinalStimulus: process beginif (Count = 1100 thenCount_UpDn clock, reset = reset,load = load, data = data,shiftreg = shiftreg
17、;process beginclock = not clock after (ClockPeriod / 2;end process;process begin sel = 01;reset = 1; load = 0;data = 00000; wait for 200 ns;load = 0; sel = 10;set = 00; wait for 1000 ns;wait for 200 ns; end process;reset = 0; end architecture test_reg;load = 1;wait for 200 ns;data CLK,RESET = RESET,
18、STRTSTOP = STRTSTOP, TENTHSOUT = TENTHSOUT, ONESOUT = ONESOUT, TENSOUT = TENSOUT ;stimulus: PROCESSbeginreset = 1;strtstop = 1;wait for 240 ns;reset = 0;strtstop = 0;wait for 5000 ns;strtstop = 1;wait for 8125 ns;strtstop = 0;wait for 500 ns;strtstop = 1;wait for 875 ns;reset = 1;wait for 375 ns;res
19、et = 0;wait for 700 ns;strtstop = 0;wait for 550 ns;strtstop = 1;end process stimulus;clock: processbeginclk = 1;wait for 100 ns;loopwait for (ClockPeriod / 2;CLK good_number;next when not good_number;vector_time := r * 1 ns;if (now vector_time thenwait for vector_time - now;end if;read(l, space;rea
20、d(l, tmptenthsout, good_val;assert good_val REPORT bad tenthsoutvalue; wait for 10 ns;if (tmptenthsout /= tenthsout thenassert errordet REPORT vector mismatch;end if;end loop;wait;end process check_results;end testbench_arch;library XilinxCoreLib;CONFIGURATION stopwatch_cfg OF testbench ISFOR testbe
21、nch_archFOR ALL : stopwatch use configuration work.cfg_tenths;END FOR;END FOR;END stopwatch_cfg;-测试矢量文件(Vector file containing expected results0 1111111110340 1111111110400 1111111101460 1111111011520 1111110111580 1111101111640 1111011111700 1110111111 . . . . .编写测试平台注意事项:(1 编写测试程序前先了解仿真模拟器的性能。 不同的
22、仿真器采用不同的仿 真算法和方式进行仿真, 同样的程序在不同的仿真器环境下可能有不同的仿真结 果。(2除了时钟,避免其他信号采用死循环语句。 (3 将独立激励信号分别放入独立的进程语句进行仿真, 这样仿真器可以更 容易的产生仿真结果。(4尽量避免显示不重要的数据。 SOC 的设计包括难以计数的事件激励和 信号, 显示太多数据将会降低仿真器的效率, 为了提高仿真速度最好是只采样相 关重要的数据。6.4 SOC中的嵌入式精简指令集处理器 RISC微处理器的性能 P=f/I*C其中, P 是微处理器的性能, I 是程序的指令集合, C 为每条指令的平均执 行周期数, f 是处理器的工作频率。 可见,
23、要提高微处理器的性能,有三个途径:(1提高处理器工作频率 f ,这取决于工艺水平和电路设计水平的提高(2减少程序指令集合,取决于优化编译器的改进(3采用流水线结构和并行处理,以减少平均指令执行周期数 C1. RISC 不是一种体系结构,也不是一种实现结构,而只是一种计算机设计的基 本准则。 RISC 处理器所具有的指令系统应有利于流水线处理器的高效执行,并 有利于优化编译器的代码生成2. RISC 处理器的特点:(1格式简单,长度固定的指令系统(2短周期时间(3单周期执行指令:大部分指令都能够在一个周期内执行完毕(4 采用 Load/Store结构:利用 Load 指令将数据从内存中取出放入到处理器中 的寄存器,在寄存器中进行数据处理,处理完毕后通过 Store 指令将数据送回到 内存中。(5硬连线控制:采用少量简单、固定的硬连线控制逻辑代替微码以实现指令 的快速运算(6大寄存器堆:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030工业视觉检测深度学习算法在瑕疵识别中的过拟合对策
- 2025-2030工业级无人机巡检数据分析平台架构设计报告
- 2025-2030工业级3D打印金属粉末循环利用技术与成本节约空间
- 2025-2030工业级3D打印材料性能优化与航空航天应用前景报告
- 2025-2030工业物联网边缘计算节点安全防护体系与攻击溯源机制构建
- 家居软装配饰销售创新创业项目商业计划书
- 广告咨询服务创新创业项目商业计划书
- 水稻智能温室种植与应用创新创业项目商业计划书
- 中药学临床应用说课稿范文
- 汉语言文学就业现状调查报告
- 康复养老护理辅具研发
- 2024(苏教版)劳动六年级上册全册教学案
- 2025秋苏教版(2024)小学科学二年级上册(全册)教学设计(附目录P123)
- 2025年amOLED行业研究报告及未来行业发展趋势预测
- 2025年国家电网公司招聘面试模拟题集与答案解析
- 拍照摄影技巧
- 校园招聘服务协议书范本
- 语音厅运营基础知识培训
- 广州市房屋租赁合同国土局标准模版
- 停车场保安安全知识培训课件
- 校长在食堂从业人员培训会上的讲话
评论
0/150
提交评论