芯片验证(3学时)_第1页
芯片验证(3学时)_第2页
芯片验证(3学时)_第3页
芯片验证(3学时)_第4页
芯片验证(3学时)_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,SoC芯片验证,2,Agenda,Why Verification Verification Alternatives,3,What is Design Verification?,for (i = 0; i 3) p = p * 3; else q = q + r; ,always (posedge clk) begin if (rst=1b1) cnt = sv; else if (cnt=2b00) cnt = 2b01; else if (cnt=2b01) cnt = 2b10; else if (cnt=2b10) cnt = 2b11; else cnt = sv; end,

2、Bottom line: to fix as many bugs in your design as possible,Verification takes 70% of resources in todays IC design,4,设计验证verification的目的是确认设计的功能正确性和性能(速度和功耗等)满足设计要求,贯穿于设计的整个过程,5,Where are the Bugs?,Functional specification system or behavior-level descriptions Design creation Inconsistent with spec

3、 RTL coding error (typo, X, logical error) Assumption on the environment Design/Physical implementation Synthesis tools Manual optimization,6,Percentage of Total Flaws,7,Importance of Verification,More than half of all chips require one or more re-spins, and that functional errors were found in 74%

4、of these re-spins. With increasing chip complexity, this situation could worsen. Who can afford that with = 1M Dollar NRE cost?,8,Bug Fixing Cost in Time,Cost of fixing a bug/problem increases as design progresses. Need verification method at early design stage,Behavioral Design,RTL Design,Gate Leve

5、l Design,Device Production,Cost of Fixing a Problem,9,Verification vs. Testing,High-level spec,RTL design,Synthesis/P #20 b = 1; $display (“status is = %d”,c); .,Testbench,DUV,Some part of the design is tested repeatedly.,Other parts are not even tested.,14,Software Simulation,Pros The design size i

6、s limited only by the computing resource. Simulation can be started as soon as the RTL description is finished. Set-up cost is minimal. Cons Slow (k cycles/sec) ; Speed gap between the speed of software simulation and real silicon widens. (Simulation speed = size of the circuit simulated / speed of

7、the simulation engine) The designer does not exactly know how much percentage of the design have been tested.,15,RTL仿真,所使用的工具:VCS or Modelsim 仿真步骤: 搭建RTL验证环境 编写RTL的testbench 编写ARM的测试代码 把ARM测试代码的二进制文件加载到RTL验证环境中的RAM中 开始运行arm测试程序 观察仿真波形,观察调试信息,16,搭建RTL验证环境,以DMAC模块的验证为例,SOC芯片 DMAC,SRAM1 (CSA 16 *1),SRA

8、M2 (CSB 8*1),SDRAM (CSE 16*1),SRAM (CSF 16*1),NAND (8*1),SSI模型,17,搭建RTL验证环境(续),SoC芯片 ARM7TDMI AMBA DMAC模块 SSI控制模块 EMI INTC SoC芯片外接模型 SSI外设模型 SRAM模型 SDRAM模型 NAND模型,18,编写RTL testbench,19,编写RTL testbench,在初始化部分添加 系统复位信号 系统时钟信号激励 把SoC芯片的各个管脚连接好 暂无用的输入管脚置0或置1,暂无用的输出管脚可悬空 和功能验证相关的管脚必须对应连接好 每个片选上所接的存储器须按存储

9、器的要求连接好各个信号线,20,编写arm测试代码,Arm初始化代码 汇编文件中的复位异常处理 中断处理 汇编文件中的IRQ异常处理 C文件中的中断处理 C文件中的初始化代码 在main.c文件中初始化PMC模块,设置系统时钟,打开模块的门控时钟等。,21,编写arm测试代码(续),在main.c文件中编写各个功能验证代码 如验证存储器到存储器的数据传输 初始化DMA 设置存储器源地址和存储器目标地址 设置传输的数据大小 开始传输 中断服务程序 读取中断状态寄存器,看传输是完成了还是发生错误 如果是传输完成中断,则读出存储器目标地址的数据,看是否正确。,22,把ARM测试代码的二进制文件加载到

10、RTL验证环境中的RAM中,Arm测试代码在ADS或RVDS软件开发环境中编译,生成axf文件 Axf需要转换成文本文件asc,一行8位或16位,视CSA片选所接存储器的宽度而定。 fromelf -vhx -8x1 “ssi.axf -o asc 把asc加载到SoC的CSA片选所接的存储器中 在RTL的testbench中编写 $readmemh (asc,u_csa0.memory);,23,开始编译RTL代码并仿真,vcs -f file_arm.f -l sim.log 其中file_arm.f文件中列出了所有的.v文件 Arm.v Amba.v Dmac.v Ssi.v Emi.v

11、 Intc.v Top.v Ssi_model.v Sdram.v Sram.v Nand.v Test.v,24,开始运行arm测试程序,在testbench中所加的复位和时钟信号的激励下 arm在复位后从0 x0地址取指令运行 0 x0地址一般为片选CSA所接的存储器,25,观察仿真波形,普通、简单、基础而又易被忽视的信号! CLK RESET_N 但是无论在仿真还是测试中都是最重要的信号!,CLK RESET_N,26,观察仿真波形(续),看arm是否正常取指令运行 先取0 x0地址中的跳转指令(e开头的指令),内容是否正确可参考asc文件中的第一行。 下一个取的地址就不是0 x4,而是

12、根据跳转指令而跳转到其它地址去取指令,27,观察仿真波形(续),观察AMBA总线的信号是否正确 先看HTRANS信号 00:IDLE 01:BUSY 10:NONSEQ 11:SEQ,28,观察仿真波形(续),HBUSREQ HGRANTx HSELx (Slave select signal) HLOCK HTRANS1:0 HBURST2:0 HADDR31:0 HREADY (Slave response signal, transfer done.) HRESP1:0 HWDATA31:0 HRDATA31:0 HWRITE,29,观察仿真波形(续),看DMAC模块的接口信号波形 如果

13、是存储器到外设的传输 看存储器的接口信号 看相应外设的接口信号 SSI,30,观察调试信息,如何把C代码中打印的调试信息打印到VCS仿真运行的控制台中? 在SoC芯片的顶层文件中例化Tube模块,作为一个AHB slave设备,设占用的地址为0 x1100c000。 Tube模块接收往0 x1100c000地址所写的字符并保存到log文件中。 在arm测试代码中的retarget.c文件实现print函数,print函数把要打印的调试信息发送到0 x1100c000 地址 则arm代码调用print函数,即可把调试信息打印到VCS仿真运行的控制台中。,31,Verification Alter

14、natives,Simulation FPGA Prototyping Formal Verification,32,Prototyping,Imitating the function of another system to achieve the same results as the imitated system. Usually, the prototyping hardware comprises FPGAs. More than 10000 times faster than simulation.,Simulation,Prototyping,33,Prototyping,P

15、ros Higher clock rate (up to 100M cycles/sec) due to specific design of prototyping board. Components as well as the wiring can be customized for the corresponding application. Can be carried along. Cons Not flexible for design change (Every new prototype requires a new board architecture. / Even a

16、small change requires a new PCB.),34,A Prototyping Example,35,FPGA验证,FPGA选型 FPGA设计步骤 FPGA软件开发工具 FPGA电路板 结果观察,36,FPGA选型,Altera于1983年创立 ,是可编程芯片逻辑解决方案倡导者 。目前,Altera的全球市场份额已排在第二位,仅次于Xilinx Altera产品系列 Altera目前的FPGA产品有Stratix系列(IV)、Arria系列(II)、Cyclone 系列(III) STRATIX II 系列(90-nm) (EP2S90、EP2S130) STRATIXI

17、II系列(EP3S150)(65-nm ),37,FPGA的设计步骤,FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来; 2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确; 3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出vqm/edf/edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。常用的专业综合优化工具有Synplicity公司的Synp

18、lify/Synplify Pro、Amplify等综合工具,Synopsys公司的FPGA Compiler II综合工具。,38,FPGA的设计步骤,4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是Flow Engine。 5)时序验证,其目的是保证设计满足时序要求,即setup

19、/hold time符合要求,以便数据能被正确的采样。时序验证的主要方法包括STA(Static TimingAnalysis)和后仿真。在后仿真中将布局布线的时延反标到设计中去,使仿真既包含门延时,又包含线延时信息。这种后仿真是最准确的仿真,能较好地反映芯片的实际工作情况。仿真工具与综合前仿真工具相同。 6)生成并下载BIT或PROM文件(sof/pof/jic),进行板级调试。,39,FPGA的设计步骤,在以上几个主要开发步骤当中,属于验证的有功能仿真和时序验证两个步骤,由于前仿真和后仿真涉及验证环境的建立,需要耗费大量的时间,而在STA中对时序报告进行分析也是一个非常复杂的事情,因此验证

20、在整个设计流程中占用了大量的时间,在复杂的FPGA/IC设计中,验证所占的时间估计在6070之间。 相比较而言, FPGA设计流程的其他环节由于需要人为干预的东西比较少,例如综合、布局布线等流程,基本所有的工作都由工具完成,设置好工具的参数之后,结果很快就可以出来,因此所花的时间精力要比验证少的多。,40,FPGA软件开发工具,主要用到的软件有两个:Synplify和Quartus Snplify 用来做综合 Quartus 用来做布局布线、时序验证、生成烧录文件,41,FPGA电路板,电源 综合考虑FPGA芯片所需的电源电压、电路板上其他芯片所需的电源电压 考虑是否需要电源转换芯片 时钟 外

21、接晶振 外接电路 存储器 SSI外设,如触摸屏的触摸点电压数据传送 发光二极管 接口芯片以引出较多管脚来观察信号 ,42,FPGA结果观察,万用表测量电压 看某个发光二极管的亮灭 用逻辑分析仪来观察引出的管脚信号,43,Verification Alternatives,Simulation FPGA Prototyping Formal Verification,44,Formal Verification,Objective Check coincidence of circuit and model in every detail Pros Assures 100% coverage.

22、Fast. Cons Could not replace simulation. Memory explosion Limitation of EDA tools.,45,Speed Comparison,0 kHz,Software Simulation,10 kHz,1MHz,15kHz,100 kHz,Speed (Cycles/sec, log scale),100MHz,10100MHz,Prototyping,46,Design Complexity,47,系统级软硬件协同验证技术,48,系统级软硬件协同验证技术,RTL仿真验证速度极慢, FPGA验证的周期很长,都不能满足系统级设

23、计的要求,49,什么是电子系统级设计?,电子系统级(Electronic System Level)设计,就是在更高的抽象层次(RTL级的上层),用足够快速的方法来描述SoC系统,给软硬件工程师提供一个虚拟平台,用以进行硬件系统架构的探索和嵌入式软件程序的开发。,关于ESL设计,一个经常提到的更广义的定义是: ESL设计就是在你设计的上一层进行的设计。,50,传统的设计流程,传统的设计流程是在定义了系统规范后,直接从RTL设计开始的,因而会来带以下两个问题: 一、不能有效地预测设计的性能与功耗,随着系统复杂度日益增加,设计经验已经不能很好的解决问题; 二、需要在建立硬件平台之后,软件设计工作才

24、可以开始,延长了设计周期。,传统的设计流程,51,电子系统级设计流程,使用可执行的系统设计规范(ESL模型),主要有两个方面的优点: 一、系统设计更早地和验证流程相结合,可以在设计之初就优化系统的结构、改善系统的性能与功耗,从而能确保工程开发产品的品质; 二、功能正确和时钟精确型的执行环境,使软硬件协同设计成为可能,大大缩短了系统的开发周期。,新的设计流程(ESL解决方案),52,电子系统级设计流程(续),从图中可以看到,通过引入ESL设方案将在很大程度上缩短了设计周期。据报道,三星公司通过使用ESL工具把设计时间缩短了约40%。,53,电子系统级设计流程(续),从图中可以看到,IC设计的重心

25、正逐渐从传统的寄存器传输级(RTL)设计方法,向电子系统级(ESL)解决方案转移。,采用ESL设计方法,将成为未来IC设计的主流。,54,电子系统级设计方法,systemC建模 基于Armulator的建模 SoC designer建模,55,片上系统对设计/描述语言的要求,高仿真速度和建模效率 时序和行为可以分开建模 支持软件和硬件建模 支持基于平台的设计 支持从系统级到门级的无缝过渡 支持系统级调试和系统性能分析等,VHDL和Verilog HDL无法满足要求,56,设计描述语言的发展,扩展VHDL与Verilog HDL,比如Superlog、SystemVerilog,扩展C/C+,比

26、如SpecC,SystemC,两种重要语言,SystemC,支持完整的系统设计与验证,=C+ HDL,SystemVerilog,支持验证和寄存器传输级设计的最好语言,=扩展的Verilog+Vera,两个发展方向,57,SystemC 提出,1999.9 美国加州Saint Jose的嵌入式系统会议 SystemC开放标准. 由OSCI (Open SystemC Initiative )组织推动,58,SystemC介绍 语言架构,SystemC本质上是在C+的基础上添加的硬件扩展库和仿真核,59,SystemC 描述层次,SystemC不仅仅是

27、一种新的硬件描述语言,而是一种系统描述语言,60,SystemC 描述层次,1,Gate Level,RTL Level,System Level,1980s,1990s,2000s,61,SystemC 描述层次,寄存器传输级(RTL) 硬件实现层, 关注信号/比特,时钟周期精确。如组合逻辑,触发器,计数器,状态机等 VHDL和Verilog的主要描述层次 时钟周期精确级 保留时钟周期精确的行为,去掉底层实现细节。主要描述交易(transaction)。交易描述的是数据的传输本身(源,目的,数据,长度),而不描述如何实现具体的握手协议。 具有基于时钟的执行语法,能够直接映射到寄存器级传输的信

28、号。 仿真速度约为10-100KHz,可用于系统验证.,62,SystemC 描述层次,带时间信息的编程级(PVT= Programmer View + Timing) 对编程级描述加入时间信息。 单个数据或者数据块作为一个传输。 时间信息被建模为“完成任务所需时间”,而不是“完成任务的每个时钟周期的行为”。 数据的通信在时钟精确级建模,以对系统体系结构对性能的影响进行建模。 仿真速度为1 5 MHz,可以用来进行系统性能评估和设计空间探索。 编程级(Programmer View) 精确到比特的系统描述,可以为软件编程人员所用。 点对点的通信,不考虑具体总线的架构。 仿真速度为10 - 10

29、0MHz:足够用于系统的评估和软件开发 算法级 系统的功能性表示,与特定的体系结构无关. 描述语言取决于应用的领域 Matlab: 通信信号处理,图像处理, 控制 UML:软件工程 SDL:通信协议,63,SystemC 描述层次,高层: 优化更有效率 底层 面向实现 SystemC的描述层次适于进行体系结构的探索,64,SystemC介绍 建模能力,65,SytemC介绍 传统的设计流程,手工转换,Refine,66,SytemC介绍 有了SystemC的设计流程,67,Transaction Level vs. RTL,交易级建模 系统模型中两个组件的一次数据交换. 在片内总线架构之上,主

30、要对各功能模块之间的并行通信进行建模。不考虑具体总线握手时序,资源占用等情况. 优点 更高级别的抽象能力 更快的模拟速度(比RTL级建模快100倍以上) 语言: RTL:Verilog HDL, VHDL, SystemC TL: SystemC,SDL,68,SystemC与第三方工具/语言的结合,SystemC+UML,SystemC+MATLAB,69,为什么SystemC+UML,UML是可视化的设计规范语言,包括类的关系图、协作图、状态转移图等,UML广泛使用于软件和嵌入系统设计中,软件工程师普遍掌握,SystemC本质上是C+,可以用UML来规范,UML+SystemC在业界已经开

31、始使用,目前的问题是不能进行UMLSystemC的双向转换,UML2.0将会支持,所以SystemC+UML=最好的设计规范语言最好的系统设计语言,70,为什么SystemC+MATLAB?,MATLAB有良好的用户界面,强大的计算功能和多元的可视化函数 。,MATLAB为广大工程师所掌握,利用它可以迅速构建算法模型。,MATLAB提供了C接口,与SystemC很容易结合。,利用MATLAB来验证SystemC算法模块,分析浮点算法与定点实现之间的性能损失。,所以MATLAB+SystemC=一种优良的算法(定点/浮点)性能分析途径,71,关于SystemC的几个关键澄清,SystemC 的主

32、要目的是实现用单一语言完成设计规范、系统体系结构分析、验证平台和行为模型。,传统硬件描述语言的C接口不支持硬件设计中的并发性、层次性和互连。,现在的很多设计都从算法开始,SystemC比C/C+更适合对算法的描述和分析。,用SystemC的行为模型描述的算法模块比RTL模块快10100倍。,SystemC的更大价值在于其提供高层次设计流程。行为级综合工具经过多年的发展渐渐成熟,SystemC和行为综合工具结合的设计方法将会大大提高设计和验证效率. SystemC特别为行为综合设计的语法将使它成为非常适合行为级综合的设计语言。,72,SystemC介绍小结,开放的标准和组织 语言架构:一个C/C

33、+类库和仿真内核,用来描述和仿真HW/SW/System。是C语言的超集。 描述层次: 系统级描述语言 设计流程: 软硬件协同设计 扩展能力: 易于与第三方语言工具结合,73,SystemC与SystemVerilog,SystemC是ARM/Synopsys/Cadence/CoWare/富士通等50几家大公司共同支持开发的语言。严格来讲并不是新语言,而是C+的一个库。 SystemC语言经过发展已经成为一种稳固的语言,系统架构师可用来创建完整的软硬件体系架构,SystemC已经被提交到IEEE。,SystemVerilog的背景:Open Verilog International和VHD

34、L Internantional 合并成立Accellera,该组织提出了SystemVerilog。SystemVerilog的前景尚有不确定性(工具的支持和IEEE标准的竞争)。,74,SystemC与SystemVerilog是竞争对手么?,No! ,在真实设计流程中的经验清楚地表明,这两种语言非但不是相互对立,而且还是一种互补的关系,SystemC和SystemVerilog在不同的设计领域中,分别有各自的特点。两种标准的结合,将从系统规范、门电路布局直至设计验证,为设计人员提供一种可供选择的综合语言环境。,“SystemVerilog将会成为SystemC进一步发展的基石。”,75,电子系统级设计方法,systemC建模 基于Armulator的建模 SoC designer建模,76,基于armulator建模,ARMulator是ARM公司推出的集成开发环境ADS(ARM Developer Suite)中提供的ISS(instruction

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论