www.8067.com > www.8067.com >
*若人发觉爱问平台上用户上传内容了其作品的消
作者:admin   来源:未知   时间:2019-11-26

  *若人发觉爱问平台上用户上传内容了其做品的消息收集权等权益时,请按照平台侵权处置要求书面通知爱问!

  全国最大的共享材料库,等您下载。本材料为微处置器访存部件设想及布局功能验证硕士学位.doc文档,由爱问共享材料用户供给,以下为注释内容。

  西安理工大学硕士学位论文摘要分类号UDC密级学号硕士学位论文微处置器访存部件设想及布局功能验证学科名称:微电子学取固体电子学论文标题问题:微处置器访存部件设想及布局功能验证学科名称:微电子学取固体电子学摘要高机能的微处置器设想是整个消息手艺和计较机使用市场所作的主要核心和环节内容因而设想高效的微处置器布局具有严沉的意义。本文次要研究RSIC处置器的布局设想它是一个通用位RISC布局四发射的超标量和超流水线微处置器采用乱序施行和先辈的Cache设想等手艺提高流水线的效率。处置器有三个施行部件和一个访存部件。完全兼容MIPSⅢ定、浮点指令集系统。本文次要分为以下几个部门:)处置器发射模块和访存模块设想处置器的布局是影响整个处置器的工做效率的环节部门只要合理的布局才能使处置器的效率达到最高。本文正在简述整个RSIC处置器的全体工做道理的根本上细致引见了发射模块和访存部件的具体设想。)处置器延迟调试处置器的运算速度是权衡处置器黑白的最主要的尺度而运算速度和处置器的频次互相关注。本文引见了通用的几种ASIC延迟调试方式具体引见了正在工做中呈现的发射模块延迟的调试过程。)基于VMM验证方的对微处置器的验证本文通过基于systemverilog从动对比平台的搭建基于c言语的对比模子完成从动对比加快验证的速度。基于功能笼盖率的通道划分基于嵌入式汇编的定向测试编写。整个微处置器的功能准确性。环节字:微处置器布局访存延迟调试功能笼盖率验证TITLE:microprocessormemoryaccesscomponentdesignandstructurefunctionalverificationMajor:Microelectronics and Solid ElectronicsName:junyingCHENSignature:Supervisor:ProfningmeiYUSignature:AbstractThehighperformancemicroprocessordesignisanimportantfocusandkeyelementsoftheentireITandcomputerapplicationmarketcompetitiontodesignefficientmicroprocessorarchitecturesisofgreatsignificancepredictwbenwait值寄放后的值。若是同拍写回正在当拍该寄放器值为delayslotnosametime取非就为若非同拍写回正在写转移类指令的当拍取通俗写回前提一样鄙人一拍其分支延迟槽指令才能写回此时delayslotnosametime寄放器值曾经为delayslotnosametime取非就为如许就能写回分支延迟槽指令的当拍当且仅当写回分支延迟槽指令条指令。wbenwait的意义是本拍中第条能写回的因而其发生要逻辑取上第条能写回指令的写回信号wbenwait。而wbenwait的发生又有分歧其代表本拍第条能写回指令若第条要写回指令是转移类指令就是能发生misspredict信号当拍第条指令是分支延迟槽指令那么第条指和第条指令就不克不及写回因而需要逻辑取上(!((fuoutvalidin)(fuoutidin==lwid)misspredict))当然还得逻辑取上第条能写回指令的写回信号wbenwait。wbenwait的发生取wbenwait的发生雷同就是当拍FU写回指令发生misspredict信号而且FU出口寄放器无效数据的id为lwid时那么第条指令就是分支延迟槽指令当拍该当写回当拍第条要写回指令wbenwait此时就该当为。接着申明一下FU、FU、FU和MEM这四个运算部件的写回信号发生别离为wbenwait、wbenwait、wbenwait、wbenwait这四个信号。这四个信号发生较为类似以wbenwait为例来做阐述正在统一拍中FU能写回指令的id可能是lwidlwid,lwid,lwid这四种环境之一而且该当是FU出口寄放器的valid为无效若FU能写回指令id是lwid时该当有wbenwait为时则该条正在FU能写回其它种环境雷同。这四种环境之一成立则FU此拍会有一条无效指令写回。写回指针lwid的发生就是正在原有lwid上加上当拍要写回指令的个数即可。就是lwid加上wbenwait、wbenwait、wbenwait、wbenwait或者是lwid加上wbenwait、wbenwait、wbenwait、wbenwait即可。刷流水线的信号brush是正在写回模块产出产生后会把整个微处置器流水线刷空。所有跳转类的指令都分派正在FU模块中施行当猜测错误的时候FU模块misspredict信号就会为暗示有需要刷流水线的环境呈现这时还不克不及当即刷流水线需要期待跳转类指令前面的指令写回后才能刷流水线因而需要正在WB模块中判断发生刷流水线的BRUSH信号。brush信号的发生是分种环境:一是转移类指令取其分支延迟槽指令同拍写回二是转移类指令取分支延迟槽指令不是同拍写回。同拍写回主要前提之一就是正在当拍FU发生misspredict信号而且FU的写回信号wbenwait发生曾经无效再有就是FU、FU、MEM三个运算部件中任何一个部件出口寄放器数据无效时的id是此拍FU出口寄放器数据无效时id加而且该FU满脚写回前提该拍就无效发生了brush信号下拍中就用brushreg来刷整个流水线。非同拍写回的主要前提之一是delayslotnosametime寄放器的值该寄放器值的发生是将misspredictwbenwait为时而且刷流水线前提还未成立就将misspredictwbenwait值寄放,鄙人一拍中寄放器的值为而且个FU中有任逐个个的出口id取当前待写回指令id相等且满脚该FU的写回前提该拍无效发生了brush信号下拍就用brushreg来刷整个流水。发射模块总结发射模块是整个处置器的节制模块上接取址译码模块下接功能部件和访存模块发射模块的机能正在很大程度上影响整个微处置器的机能。而发射模块的延迟调试正在又是环节发射模块的延迟调试会鄙人一章中细致引见。基于bitMIPS架构处置器全体布局延迟调试dc东西简介DC(designcompiler)是Synopsys公司所设想的并被IC设想行业遍及使用的分析东西。它按照designdescription和constrains从动分析出一个优化了的门级电和门级电逻辑的彼此毗连【】【】。DC分析的过程是)阐发设想代码。)用GTECH模子,对代码进行映照这个模子和所利用的工艺厂商的库无关。)对模子进行逻辑优化然后进行逻辑映照最初按照需求对时序面积功耗等等优化。)最终映照为特地的手艺方针单位库(targetcelllibrary)中的cell最初构成了分析网表。如图是DC分析的根基流程图。图根基分析流程FigDCprocessDC分析后除了门级网表文件以外还生成时序演讲、面积演讲、功耗演讲、SDF文件。通过查看这些文件就能清晰的晓得本次分析能否达到了设想方针若是没有达到则要进行点窜。处置器延迟环节径点窜微处置器的机能就是处置器的生命微处置器通过提高频次提高了处置的速度从而达四处理器机能的提高。点窜延迟方式引见正在IC数字前端设想中有多种报酬的点窜延迟的方式凡是采用)削减逻辑冗余)优化逻辑设想)挪动环节径的逻辑)添加流水级。)削减逻辑冗余:数字IC设想中写RTL代码的时候会发生一些不需要德尔冗余如下面例子所示assigna=(b==c)?’b:’b如许的书写代码的气概会产一个选择器的逻辑冗余不只添加了延迟还增大了面积。如许的书写气概是必必要避免的。准确的书写体例如下assigna=(b==c))优化逻辑:正在数字电设想中能够通过改变设想算法达到优化时序的结果。好比乘法采用华莱士树设想之后大大加速了速度。正在流水级中的环节径上(一个流水级中延迟最长的径)能够采用把串行的电改为并行如许削减了环节径上的延迟时间如要设想一个Z=ABCD如许一个电。图三种加法模式FigThreeaddmode如图所示A是一种欠好的设想和B比拟延迟增大但都利用了三个加。B是采用了集成电中的并行思惟同时运算AB,CD最初再相加如许只用了两个加法的延迟。C采用四二压缩的体例面积和延迟都大大优于前面两种设想。逻辑延迟是ASIC设想中最为的一般采纳面积来换取延迟的并行电设想方式当然最优的设想是延迟和面积都能兼顾。)挪动环节径的逻辑:通过挪动环节径上的延迟也是延迟调试中很主要的一种方式如图所示:图挪动逻辑示企图FigMovethelogic如图所示逻辑是整个设想的环节径通过把逻辑环节径的一部门逻辑移到逻辑和逻辑通过如许的方式削减环节径上的延迟。合理分派每个流水级上的逻辑。)添加流水级:正在前面的方式都不克不及达到点窜环节径上的延迟的时候能够采用添加流水级的的方式把一个流水级的逻辑分成两个流水级达到使每一级流水线上的逻辑束缚正在的的范畴内。如图所示:图添加流水级示企图Figaddapipeline正在一级流水中逻辑很大挪动后其他径就成为了环节径或者逻辑欠好挪动的环境下采用把一级流水线的逻辑分成两级的方式如上图所示通过添加流水线的深度达到调整环节径延迟的方针。处置器全体延迟阐发本次设想中采用的是SMIC工艺库方针频次是MHZ通过DC分析后发射模块延迟大大跨越设想方针如图所示图DC演讲的环节径FigDCreportkeypass图DC后的时序演讲SLACK成果FigDCslackreport由图能够看出DC后的延迟超了约ns通过度析时序报现正在微处置器中发射模块用了一级流水而逻辑延的arrivaltime是大大的跨越了设想方针。发射模块是整个微处置器的指令节制模块环节径是从IQ项队列起头通过head选出需要发射的条指令选出指令后通过指令的机械码从个通用寄放器当选出条指令目标寄放器和数据源寄放器所对应的valid进行数据相关判断最初和并行判断的资本相关的成果进行分析判断能发送的指令数前往给head下一个时钟周期进行更新。阐发这个环节径的延迟:选一的选择器延迟选一的选择器延迟级取门延迟。通过尝试发觉选一的选择器延迟选一的选择器延迟曾经跨越ns的设想方针。因而只要采用多流水点窜延迟的方式把一个时钟周期的延迟分成两个时钟周期。本次处置器设想的延迟调试鉴于选的选择器延迟选的选择器延迟以跨越ns的设想方针分时钟周期时就需要把两个选择器分正在分歧的流水级中图点窜延迟后的发射模块示企图Figissuepipelineafterreworkthedelay如图所示为延迟点窜后的发射模块示企图ACP模块中施行选的操做ISSUE施行选的操做第一个ACP模块通过选把四条相关的指令全选出来下一个时钟周期上升沿到来后条指令顺寻放入ISSUE模块中进行相关的判断。图分拍后延迟的SLACKFigtheslackafterchangethepipeline若是把资本相关放到后面ISSUE模块中正在DC分析后SLACK仍是没有达到设想方针如上图所示可是这一次SLACK只差差距不大如图所示。能够通过挪动逻辑削减设想冗余串行转并行等等方式实现。把资本相关放到前一个模块后一个模块完成取源操做数、数据相关判断、发射前提发生等操做。如许通过如许的改良后延迟缩短为正的。达到了设想方针。如图所示:图调整后的SLACKFigtheslackafterrework基于bitMIPS架构处置器全体布局功能笼盖率验证跟着集成电设想复杂度的提高现正在芯片已达到上亿门的规格。验证变得愈加的复杂验证工做以占到整个开辟的。出格是高机能的微处置器实现布局越来越复杂,功能验证成为设想开辟过程中的一个主要瓶颈【】。vmm验证方VMM(VerificationMethodologyManual)验证方是synopsys公司提出的验证方基于VMM(VerificationMethodologyManual)的验证朴直在IC验证业界获得了普遍的承认VMM验证方有很强的可沉用性从动化程度高支撑功能笼盖率验证极大的提高了验证的全面性和验证效率。基于systemverilog言语的从动对比平台基于C言语的Referencemodule为了加快验证的过程若是验证过程中报酬的查抄每一组数据的准确性效率很低大大耽误了验证的时间。因而正在测试过程中需要用一个和RTL对比的模子仿照RTL的行为过程通过从动对比仿实模子和RTL级代码达到验证从动化的方针。仿实模子要求编写相对简单验证容易。c言语是比verilog言语更高级的言语因而用c言语编写referencemodel验证是比力简单的。验证中利用两个c模子:DUT的验证参考模子和内存模仿器。正在验证微处置器内核的过程中为领会除各类其他的非内核的错误因而采用c言语写内存模仿器模仿内存的工做环境。内存模仿器很好的完成内存的工做又正在调试的时候能够解除内存的bug。内存模仿器正在验证过程中大大的加快了验证缩短了验证的时间。DUT参考模子是整个对比平台中最焦点的部门。尝试发觉按照cyclebycycle的模式完全模仿RTL级代码写出的对比cmodel代码量比力大调试cyclebycycle的cmodel犯错较多调试也较慢。如许明显不适合简单易于验证的cmodel的特点。针对这种环境我们开辟出了指令级的cmodel。指令级cmodel能施行:算术指令分支跳转指令存取指令逻辑指令插入固定取位指令数据搬移指令移位指令浮点算术指令浮点比力指令浮定转换指令浮点存取指令浮点数据搬移指令等微处置器内核的功能。指令级cmodel不消仿照微处置器内部布局而每一条指令施行完后响应的记实下通用寄放器中的数据和RTL代码对比时每施行一次写回操做后通用寄放器中的数据。相对cyclebycycle的model愈加简单bug数也更少。是抱负的验证对比model。本次开辟的指令级model能查看通用寄放器中的数据和内存中的数据。通过systemverilog从动对比平台DPI接口能够从动对比RTL级代码和cmodel中相对应通用寄放器和内存的值若是对应不告RTL级代码和cmodel通用寄放器或内存地址数据。能够通过演讲上的地址和数据快速的定位错误所正在。综上所述本次开辟的cmodel实现从动化测试极大的加速验证速度。微处置器从动对比平台本次设想所设想的VMM验证平台如图所示通过DPI接口把对比cmodule的数据放入systemverlog从动对比平台中和被测设想仿实出来的成果进行从动比对最终报出对比module和被测设想的对比成果若是有错显示出犯错的数据点若是没错则报出准确的成果。被测设想包罗RTL级代码仿实成果门级仿实成果带延迟反标的网表仿实成果所有的数据成果都能够放正在本次设想搭建的平台中进行测试。图从动化验证平台一般布局FigTheautoverificationroofstruction从动化的验证平台包罗了从动比对布局功能笼盖率统计带束缚的随机激励发生随机测试激励能够节流时间人力还能笼盖到一些设想人员所忽略的测试点。从动对比能够加快验证过程提高DEBUG的速度。功能笼盖率对整个设想测试的可托度。笼盖率模子包罗功能笼盖率、代码笼盖率、翻转笼盖率、无限形态机笼盖率等。代码笼盖率、翻转笼盖率。功能笼盖率的感化是全体检测设想的功能点是不是全都被验证到因而为了提高验证的可托度基于功能笼盖的测试点必需细致的统计定义。正在测试过程中通过VCS仿实从动生成功能笼盖率的演讲统计出功能笼盖率。最初通过vcs的urg功能从动阐发整合功能笼盖率演讲,查抄验证能否充实。这里的功能笼盖率要求是达到【】【】。当功能笼盖率没有达到时点窜带束缚的随机测试激励或者手动编写定向测试激励。当对比犯错交由设想人员点窜BUG。针对微处置器全体布局编写指令级的cmodel为了更快的验证全体微处置器内核能否准确因而用C言语搭建DDR内存模仿器模仿内存的存取行为次要用正在系统验证平台中完成指令的加载和数据的存取功能。把数据导入内存模仿器通过DPI接口完成对c函数的挪用比力微处置器中的通用寄放器中的数据和最终微处置器所寄放正在内存中的数据。以通用寄放器数据对比为例。importDPICfunctionvoidreadrf(inputlongintx,inputinty)通过DPI接口把RTL代码中通用寄放器的数据导入到referencemodule中importDPICfunctionvoidcomparerf()通过DPI接口对比referencemodule和RTL代码中的通用寄放器。tasktestrf()正在systemverliog从动对比平台中把RTL的通用寄放器的数据放义的数组中。beginlonginttestrfinttempfor(temp=temp=temp)readrf(testrftemp,temp)挪用c言语的readrf这个函数endtasktestrfbegin#正在微处置器完成所有指令操做后挪用testrf把通用寄放器的数据放入referencemodule中。testrf#comparerf()从动对比RTL和referencemodule中通用寄放器的数据当数据不婚配时演讲出不婚配的寄放号和数据。#$finish完成本次测试end通过从动对比平台referencemodul和RTL代码最终运算成果从动进行比对犯错时能供给错误的削减了人工阐发的时间极大的加速了验证的速度。缩短了开辟周期。功能笼盖率测试笼盖率根基分为代码笼盖率和功能笼盖率。代码笼盖率有:行笼盖率翻转笼盖率表达笼盖率。能按照测试激励从动的阐发所有RTL设想描述代码能否被完全施行。代码笼盖率是正在设想验证中一个部门能够阐发RTL代码中冗余部门。可是代码完全笼盖也不克不及证明所测试的RTL级代码功能完全测试到。相对应的功能笼盖是IC测试中权衡测试能否完成一个最主要的参数通过功能笼盖率测试把设想中的每一个功能点都要测试到而通过使用交叉笼盖点测试功能组合环境能愈加精确的反映设想的验证环境。当功能笼盖率达到时能对芯片流片准确率供给脚够的支撑。因而怎样划分功能笼盖点正在验证中拥有举脚轻沉的地位。功能笼盖率测试点划分微处置器全体布局比力复杂正在编写功能笼盖率文档时需要留意模块和模块之间的接口信号等等这是最容易被忽略的处所也是最容易犯错的处所。功能笼盖率的编写是测试完整度的一个最主要的目标正在写功能笼盖率时该当尽量的细心每个点都笼盖到。正在本次设想针对功能分为可穷举的测试和不成穷举的测试。照实现ab这个操做就是可穷举的。只要四种环境。例如bit浮点乘加部件若是要把功能完全测试则需要测试这么多激励以人类现正在的手艺手段是需要几千年才能测试完全。明显不成能的。针对这种环境阐发本次设想中不成穷举的模块中每一条数据通和设想中的各类边角环境把所有的环境都笼盖到。图功能笼盖点划分Figcovergroupsetoff如图所示对不成穷举的模块会细心阐发代码深切到每个取门或门非选择信号等等集成电中最根基的门单位确定的功能笼盖点和交叉笼盖点能把每一条数据通都完全笼盖到。而正在微处置器的测试中通过systemverilog言语对代码中的每一个笼盖点进行描述下面是针对设想中的一个功能点写的笼盖点和交叉笼盖点。covergroupinvins(posedgetopstissueissueclk)正在时钟上升沿来的时候采集数据。invins:coverpointtopstissueissueinvins定义个笼盖点这个笼盖点有,两个数据。{binsinvins={:}}invins:coverpointtopstissueissueinvins{binsinvins={:}}corinv:crossinvins,invins定义交叉笼盖点是由invins,invins两个构成的。{Ignorebinsinvnever=binsof(invins)intersect{}binsof(invins)intersect{}忽略交叉笼盖点中不成能呈现的环境。}功能笼盖率是指点测试的一个主要的尺度因而正在功能笼盖率测试之前需要针对每个模块的设想编写功能笼盖率仓。访存部件功能笼盖点划分:)LSQ模块中有一个项队列的寄放器每一组寄放器都有valid(lsqvalidlsqvalid,lsqvalid,lsqvalid)和(lsqstall,lsqstall,lsqstall,lsqstall)节制当项valid都满则queuebusy为当项不满的时候queuebusy为以上每个信号都是一个仓。)Dcache中有*项队列。次要节制信号:dcachevalid:dcachevalid:dcachevalid:dcachevalid:dcachedirty:dcachedirty:dcachedirty:dcachedirty:。由于dcache的特殊性质所以需要用一个寄放器把后面所需要的值用寄放器存起来dcacheoutvalid是此中的节制数据能否无效的值。以上每个信号都是一个仓。)Tag只要一级寄放器。节制信号:tagoutvalid。是一个仓。Adapter中有一个项队列节制信号有(adavalidadavalidadavalidadavalid)和(adaloadorstoreadaloadorstore。adaloadorstoreadaloadorstore。)来节制。以上每个信号都是一个仓。)按照功能笼盖率的方式遍历所有的缓存机制有项队列中的每一项都能正在dcache中找到响应的值***(store的时候需要遏制流水线)Dcache找不到值的时候能存到adapter中的每一项上(****)考虑loadorstore=的时候的环境。当adapter没有其他的的需求的时候需要把dcache中dirty的值找出放入adapter(这里需要前导零操做)。每次取dcache中有*的通道放入adapter中的项中的一项中。)正在tagcmp中进行的op判断起首有laod和store两种通道taginop是一个位的op码只要:是无效的数据这里把taginop当作是仓。正在进行offset的判断:taginoffset是一个位的值所以就有的次方中环境这里要留意:好比是sd指令存的是一个位的值offset就只能是一个小于的值如许才能把位的数据没有脱漏的插入位中所以不成能把每一个offset都遍历到。这个要按照每个具体的op值来判断分歧的offst这两个是交叉笼盖的需要留意每一种分歧的环境。Taginoffset也是一个仓和taginop是交叉笼盖的)判断dirty是通过前导算法来找出前面的个数如许就能获得正在dcache中的最前面的dirty的index的值把这一项index刷入内存中。不雅测点是Waytodirty:dirtytoindex:。这两个是交叉笼盖点。)insready暗示可否需要写回到rf中(为暗示要写到rf中为暗示不写到rf中)canwb暗示数据能否预备好了(为表是预备好了为暗示没预备好))节制dcache的工做情况:起首判断tag中数据能否hit就能否是head所指向的指令能否是store指令写回信号能否来。满脚前提就能够把tag中的值写到dcache中)Lsq中每一个地址都和其他三个地址进行比力stalljudge是第项和第项比力stalljudge是第项和第项比力stalljudge是第项和第项比力stalljudge是第项和第项比力stalljudge是第项和第项比力stalljudge是第项和第项比力笼盖点是stalljudgestalljudgestalljudgestalljudgestalljudgestalljudge(都是位的数据若是是无效的地址valid=这时比力的成果也是)。再判断每一项lsq当outhead为时的环境。得出headstallheadstallheadstallheadstall就是每一项能否stall。)adaready:这里是一个位的数每一位数指的是每一项adapter所指的数据能否预备好的值。adaloadorstore:这里是一个位的数每一位数指的是每一项adapter所指的是从内存中读数据仍是从内存中取出数据。adahead:分为个数:指向的是最前面进入的指令。adatail:分为个数:。指向的是最新进入的指令。:adadcacheway:指的是需要把数据放入dcache中的哪一个位子上。:adaop:有项每一项的op后位是无效数据暗示进行什么操做。:adaqueue:有项每一项代表数据是从lsq中的那一项出来的。:adavalid这里是一个位的数每一位数指的是每一项adapter能否无效。:adastoreonly这里是一个位的数每一位数指的是每一项adapter若是storeonly这个值为那么就忽略adaloadorstore这个信号。的adaready,adavalid,adaqueue,adadcachewayadaloadorstoreadastoreonly是交叉笼盖的信号正在这里只要当adavalid为的时候其他信号才是无效的信号当adavalid和adastoreonly都为的时候adaloadorstore这个信号就是无效的信号这里的adaheadadatail是两个队列指针这两个指针能够当作是两个分歧的仓这两个仓是交叉笼盖的。测试激励编写本次测试采纳了条理化的验证策略,按照单个模块级、部件级、全片级的先后条理进行验证。基于条理化验证策略建立的微处置器RTL级验证包罗模块级和部件级模仿验证、全片级模仿验证以及FPGA物理原型验证平台这几个部门。图是全体测试流程:图根基测试流程FigThebasictestprocess施行部件包罗定点施行部件和浮点施行部件。这些部件是实现MIPS指令集中的数据操做指令。这些操做和数据相关性很高。正在测试的时候能够用systemverilog搭建特地的测试平台通过DPI接口把cmodle的数据导入systemverilog对比平台中。正在测试初期由于RTL级代码不不变有良多bug。这个时候需要手动编写定向测试激励进行测试。手动编写测试激励不克不及验证设想所有可能的行为同时跟着逻辑的复杂取代码行数的添加定向测试案例的办理取变得很是坚苦。而随机测试的方式能够通过编写带有束缚的随机向量供给大量的测试激励。下面是功能部件带束缚的随机测试的例子classindatarandreg:earandreg:ebrandreg:marandreg:mbrandregvalidrandreg:roundingrandregoprandreg:datatypeconstraintrange{datatype=}endclass报酬的编写功能笼盖率代码也会呈现没有查抄出来的RTL级的缝隙。通过为被测设想供给伪随机激励来扩大验证空间。w体育。随机激励能够更全面地检测整个设想的功能找到边角前提下的现患。带束缚的随机激励生成能够从动的生成随机测试激励向量削减报酬操做加速了验证的速度节流了人力。布局包罗取指译码发射访存。三部门布局的相关性很强因而正在验证的时候是把布局组合到一路加上已验证过的施行功能部件进行布局验证。该测试平台将笼盖率组模子定义正在零丁的model中通过正在DUT中实例化该model来完成各功能组件功能笼盖率的统计。如许做一方面是便利功能笼盖率模子的另一方面是便利DUT的点窜取分析。通过编译器把c言语或者嵌入式汇编反汇编成机械码为了使编写的测试激励能够定向的笼盖到所需要的笼盖点我们用嵌入式汇编的方式切确定向的编写我们所需要的测试向量。下图是通过嵌入式汇编言语编写出来的定向测试激励。voidmain(){intout,out,op,op,a,b,ca=b=op=op=asmvolatile(c言语中的嵌入式汇编setmipsrnclz,nclo,nsetmipsn:=r(out),=r(out):r(op),r(op))if(a!=b)c=ab}的代码是用嵌入式汇编编写的定向测试激励通过报酬的编写测试激励能够把需要笼盖的功能点定向的笼盖到做到对症下药。图交叉编译后的MIPS指令FigMIPSinstruction由图是交叉编译后的MIPS指令第一竖行是每条指令所对应的首地址第二竖行是指令的进制数据后面是指令的帮记符。用C言语把指令和指令所对应的地址写成数组的形式。通过DPI接口给微处置器供给数据。图是针对访存模块各个分歧的笼盖点编写的部门测试激励截图。图中通过编写分歧的嵌入式汇编测试激励定向的对每一个笼盖仓进行测试。图部门访存模块测试激励FigSomememoryaccessTeststimulus针对分歧的功能笼盖点写的测试激励最初通过URG东西把功能笼盖率和笼盖点整合正在一路如许就能愈加的曲不雅的领会测试的历程。下图是本次开辟最终的功能笼盖率能够看见通过编写定向的测试激励把功能笼盖率演讲中没有笼盖的点全笼盖到最终达道功能笼盖率的方针。图是功能笼盖率颠末整合后的最终演讲。图功能笼盖率最终演讲FigcoveragegroupreportRTL级功能验证微处置器设想完成基于systemverilog的从动对比平台搭建好对比的C言语编写完成后就能够进行大规模的功能笼盖率测试了测试的过程也是完美设想策略的过程通过不竭的发觉BUG进而阐发错误缘由点窜设想达到完美设想设想完全准确的方针。下面通过一个正在测试中碰见的现实问题细致描述正在测试过程中通过查找BUG进而完美微处置器设想的细致例子。正在测试图所示测试激励的时候发觉从动对比平台报出了对比C模子和RTL代码不婚配如图所示:图部门测试指令Figsometestcase图从动对比平台报出的部门对比错误图从动对比平台报错Figwrongreportabouttheautocompareroof由图memdata暗示的是内存后面的address暗示内存地址rf暗示通用寄放器number暗示通用寄放器号。当不婚配的时候就会演讲出C模子和RTL代码之间不婚配的地址而且别离演讲出C模子和RTL不婚配的地址所对应的数据通过图能够看出C模子无数据而RTL没无数据这申明正在微处置器RTL代码正在跑这组测试激励的时候可能内部流水级卡住了导致了整个微处置器遏制工做这个时候就需要通过查看波形图来确定具体的错误。图中除lwid是写回模块数据以外其他都是发射模块中的数据通过图波形能够看出指令队列的tailend才指向IQ队列中编号为的那一项而headtop却一曲正在往后发送指令。通过查看IQ队列的valid值发觉IQ队列中所有valid都为正在发射模块中是通过valid来判断指令能否无效当IQ队列中所有指令发完后也就是正在headtop=tailend的时候该当遏制发射期待有新指令进入后再发射而BUG呈现的问题是继续发射后面的指令了原有的指令的ID不是新的导致了写回模块正在对比ID的时候判断错误使整个微处置器流水线遏制工做导致后面的指令没有施行所以微处置器中仿实成果全都没无数据。图测试犯错波形图Figwrongvcsoscillogram找到BUG的缘由后针对这种错误点窜设想该当正在发射模块中把IQ队列中已发射的指令valid清为。这种方式需要做的点窜是当判断完需要发射几条指令后headtop会更新响应的数据同时点窜IQ队列的所发出去的指令的valid。可是如许做会添加环节径上的延迟并且每次刷新个IQ队列的valid功耗也会响应的增大。所以简单的断根valid是一种不成取的方式。tailend是指向下一次条指令颠末译码后放入IQ队列中的首。当tailend每次变动的时候只断根tailend所指向的那一项的valid当发完IQ指令队列中的所有指令后由于tailend所指向的指令行的valid为所以不会继续发射指令。通过如许的点窜断根了BUG了微处置器准确如图和图所示是准确的波形图和从动对比平台成果。图测试准确从动对比平台成果Figrightreportabouttheautocompareroof图能够看出点窜后从动对比平台没有演讲对比C模子和RTL代码之间有内存和通用寄放器不婚配的处所这申明RTL的成果是准确。图测试准确仿实波形图Figrightvcsoscillogram由图能够看出通过点窜tailend所指向的IQ队列中的valid当进入条指令后会把tailend所指向的阿谁IQ队列中valid刷为iqmemvalid暗示的是IQ队列中编号为的队列中的valid从波形图中能够看出iqmemvalid正在tailend为的时候是为的这个时候headtop发射完IQ队列中的指令后也为这个时候由于对应的valid为所以不会继续发射指令曲到进入条指令之后iqmemvalid为由于有指令进入iqmemvalid变为能够继续发射准确的指令。通过如许的点窜完全解除了这个BUG。雷同于如许的BUG点窜还有良多通过不竭的编写测试激励然后点窜呈现的问题达到微处置器的不变工做。图是访存模块准确的时的部门波形文件从图中能够看出headtailhead准确的跳转能准确的把数据取和存入。针对分歧的测试激励会有分歧的波形文件正在这里就不逐个举例。图访存部件波形提Figmemoryaccessrightvcsoscillogram门级网表仿实通过RTL逻辑验证后。RTL代码颠末DC分析后生成了门级网表就是把用verilog言语描述的RTL级代码通过度析映照成为foundry厂商供给的工艺库尺度门单位。分析考虑CELL的延迟面积驱动能力电气特征等等特征。而正在前段设想中最主要的就是延迟消息。图是取门的延迟表。横轴是取门的各类型号竖轴暗示输入端的信号到来后到输出端上升下降的延迟时间。图SMIC取门延迟表FigSMICandlogicdelay通过DC分析后映照成为了门级电导入库里面的延迟数据文件延迟反标后仿实门级电次要是为了查抄正在现实电设想中各个信号能否会发生合作冒险现象。下图是f访存模块带延迟反标后的波形图。从图中能够看出寄放器中的数据不是正在时钟上升沿到来后顿时出数据而是进过必然延迟后数据才不变每一个信号颠末分歧延迟的CELL后数据达到不变的时间点是纷歧样的正在数据没有达到不变的时候会发生毛刺合作等等插手门级网表延迟反标后的验证愈加的接近现实环境同时也是验证DC后的门级网表能否准确。图延迟反标后的波形图图Timingannotationoscillogram带延迟的门级仿实网表的测试激励和RTL代码的测试激励是不异的测试激励如图所示访存部件测试准确时的部门波形图从图中能够看出数据正在时钟上升沿后有必然的延迟可是正在setup时间都能准确的采集数据。图访存模块准确的延迟反标波形图FigmemoryaccessTimingannotationoscillogram总结取瞻望为了实现微处置器ASIC加快模块的模式具有自从学问产权的微处置器的设想是十分需要的。发射模块和访存模块的效率对整个微处置器的机能有决定性的影响。低功耗和低延迟的布局设想对微处置器的成长及其主要。通过两年的勤奋完成了MIPS微处置器的访存部件设想正在原有的发射模块的根本上对其进行了大幅度的点窜使其通过延迟调试。编写C言语对比平台。编写基于Systemverilog从动对比平台。通过不竭的测试寻找BUG优化微处置器设想。整个设想采用SMIC尺度单位库进行逻辑分析一个时钟周期是ns用verilog言语进行RTL级代码描述。最终整个微处置器能通过软件模仿和FPGA硬件仿实运转使用法式。而且进行nm的工艺线流片。因为时间无限处置器布局上还有良多优化之处)发射模块是挨次发射当前面的指令没有发射的时候后面的指令也不克不及发射这正在很大程度上影响了微处置器的效率。而乱序发射能够正在前面指令没卡住没发射的环境下使后面的指令发射大大加速了微处置器的速度。)访存模块只设想了一级缓存而现正在的处置器跟着工艺程度的提高不异面积能摆放的晶体管越来越多。二级缓存缓存正在这种环境下大大提高微处置器和内存之间的交互。)从动对比平台能够扩展更多的新功能好比当对比错误的时候能够提取正在错误的处所准确的数据正在DEBUG的同时把犯错那一拍的准确数据导入微处置器中继续进行测试如许大大的提高了测试的速度。)本文中的微处置器设想次要是针对运算量大的法式好比H高清视频使用需要插手ASIC加快模块。而插手如许的ASIC模块针对使用需要对微处置器布局做点窜。因而微处置器做成可设置装备摆设的能够大大的缩短开辟周期。称谢光阴荏苒仿佛就正在今天我仍是一个刚踏进研究生私塾的本科结业生可是就正在今天我要面临着结业。两年半的研究生糊口就要谢幕了欣喜之余又增添几分不舍。起首我要感激余宁梅教员一位我上研究生以来一曲指点我关怀我进修糊口的导师。从余教员身上我学到了什么叫学以严谨情以诚挚。正在看待学术问题上余教员老是谦善隆重严谨认实她有一种务实的科研传染了我糊口上余教员也是无微不至地关怀我们的糊口细节食堂饭菜质量和价位冬天暖气能否一曲供应老是她扣问我们的日常话题她有一种细微感情着我。衷心祝福余教员正在当前的糊口工做中成功健康欢愉。其次还要感激我们课题组的其他组员贾启祥孙小倩李杨陈知新朱聪董星沈山岚感激你们陪同我的每个工做日回忆和你们的每次会商都是那么的意犹未尽。最初感激我的父母用钱供我上大学供我上研究生现正在你们该安息下了由我来接过你们的锄头我能拿好这把锄头。感激的话我不想对你们说由于太轻。我只想说:爸妈我爱你们!其实研究生我该当感激的人还良多良多这里不克不及逐个列举了。研究生糊口实的要竣事了但愿本人正在当前的工做糊口中丰满本人充分本人报答父母回会做一个有用的人才就像西安理工大校训告诉我们的:祖国荣誉义务。参考文献【】OstuNAThresholdSelectionMethodfromGrayLevelHistogramsJIEEETransactionsonSystemManagementandCybemetic,,():【】PetersonPredictingtheperformanceofSoCverificationtechnologiesCVHDLInternationalUsersForumFallWorkshopWashington,:【】黄小平,樊晓桠,贾琳,等“龙腾R”微处置器流水线的设想取优化J微电子取计较机,,():【】MIPS®ArchitectureForProgrammersVolumeII:TheMIPS®InstructionSetocumentNumber:MDRevisionJuly,【】SeeMIPSRun【】AHARONA,GOODMAND,LEVINGERM,etalTestprogramgenerationforfunctionalverificationofPowerPCprocessorsinIBMCProcofDesignAutomationConference:【】VIKRAML,ELIZABETHMRAbiasedrandominstrucitongenerationenvironmentforarchitecturalverificationofpipelineprocessorsJJournalofElectronicTesting:TheoryandApplication,,():【】KEAVENEYMMcMAHONAOKEEFFENThedevelopodvancedverificationenvironmentsusingsystemverilog【】DavidAPatterson,JohnLHennessyComputerOrganizationandDesign:TheHardwareSoftwareInteceThirdEditionNewYork:MorganKaufmannPublishers,【】JohnLHennessy,DAPattersonComputerArchitecture:AQuantitativeApproachFourthEditionNewYork:MorganKaufmannPublishers,【】VincentPHeuring,HarryFJordanComputerSystemsDesignandArchitectureSecondEdition邹恒明,保蕾蕾译:电子工业出书社,~【】Reaz,MBI,Islam,MSAsingleclockcycleMIPSRISCprocessordesignusingVHDLin:IEEEInternationalConferenceonSemiconductorElectronicsPenang:IEEEComputerSociety,【】Gschwind,M,Salapura,VFPGAprototypingoRISCprocessorcoreforembeddedapplicationsIEEETransactionsonVeryLargeScaleIntegration(VLSI)Systems,,():【】RamdasT,LiminnAngFPGAimplementationonintegerMIPSprocessorinHandelCanditsapplicationtohumancedetectionin:IEEETENCON,ChangMai:IEEEComputerSociety,()【】QZhang,GTheodoropoulosModelingSAMIPS:ASynthesisableAsynchronousMIPSProcessorin:ACMSpecialInterestGrouponSimulationandModelingWashington,DC:IEEEComputerSociety,【】GochmanSeta.TheIntelPentiumMprocessor:Microarchitectureandperformance.IntelTechnologyJournal():【】guyenKhang.PreparingapplicationsforIntelCore”miroarchitecture.TechnologyIntelMagazine【】XingYuhua,WangRuElectronicAnOptimizedDesignofMCUinCPUSoftcoreBasedontheFPGAin:ProceedingsofthethInternationalConferenceonElectronicMeasurementandInstrumentsWashington,DC:IEEEComputerSociety,~【】LuddeJM,RoesnerW,HeilingGM,etalFunctionalverificationofthePOWERmicroprocessorandPOWERmultiprocessorsystemsIBMJournalofResearchandDevelopment,,():−【】WazlowskiME,AdigaNR,etalVerificationstrategyfortheBlueGeneLchipIBMJournalofResearchandDevelopment,()()【】ClarkeEM,WingJMFormalmethods:StateoftheartandfuturedirectionsACMComputingSurveys(CSUR),,():【】ChangYS,LeeSJ,ParkIC,YungKCMVerificationomicroprocessorusingrealworldapplicationsIn:ProcofthethACMIEEEConfonDesignAutomationNewOrleans,−【】KantrowitzM,NoackLMI’mdonesimulatingnowwhatverificationcoverageanalysisandcorrectnesscheckingoftheDECchipalphamicroprocessorIn:ProcoftherdDesignAutomationConfLasVegas:ACM,−【】FineS,ZivACoveragedirectedtestgenerationforfunctionalverificationusingBayesiannetworksIn:ProcofthethConfonDesignAutomation【】JanickBergeronEduardCernyAlanHunterAndrewNightingale《VerificationMethodologyManualforSystemVerilog》SpringersSynopsys,IncandARMLimited【】Accellera《SystemVerilogaLanguageReferenceManual》【】anickBergeronWritingTestbenchesusingSystemVerilogSpringer,【】SystemVerilogaLanguageReferenceManualAccellera′sExtensionstoVerilogAccellera,Napa,California,【】陈辉,申敏连系笼盖率驱脱手艺的RVM验证朴直在SOC验证中的使用A微计较机消息,,:【】操纵VMM成立基于事务的条理化验证平台林健家【】SystemVerilogadraft:Accellera’sExtensionstoVerilogAccelleraNapaCalifornia微处置器访存部件设想及布局功能验证陈俊莹西安理工大学�EMBED*MERGEFORMAT����EMBED*MERGEFORMAT����EMBED*MERGEFORMAT����EMBED*MERGEFORMAT����EMBED*MERGEFORMAT����EMBED*MERGEFORMAT����EMBED*MERGEFORMAT���IIIvsd�。。。。。。。。。。。。。。。。。行行行行块块行行Cache内存vsd�IQIQABCIQHEADTOPTAILENDTAILENDHEADTOPHEADTOP=TAILENDvsd�CmoduleDPI接口Systemverilog对比平台Cmodule成果成果被测设想unknownvsd��DUT阐发划分模块功能可穷举模块不成穷举模块阐发代码的数据通确定功能笼盖点和交叉笼盖点确定功能笼盖点和交叉笼盖点细分到代码的门级电vsd�A相加XCB相加相加YDZA相加BCD相加相加Z四二压缩ABCD相加ZABCvsd�寄放器寄放器逻辑寄放器寄放器寄放器逻辑逻辑vsd�ACPISSUE资本相关判断IQ四项指令队列个通用寄放器数据相关判断及发射发射vsd�寄放器寄放器寄放器逻辑逻辑逻辑vsd�FU判断资本相关判断数据相关判断分析判断最终成果vsdHeadTailHeadvsd�ACPISSUEIQ四项指令队列个通用寄放器资本相关判断数据相关判断及发射发射PCacpenwirevsd��nDcache中每一行的tag位取访存地址中的tag位同时进行比力两者的tag位能否不异valid位能否无效期待valid无效读出此行cacheine中的数据给adapter发出miss信号暗示从内存中取数据RefillDcache并取出数据能否能否vsd�TagIndexOffsetunknownvsdPCPCICACHEITLBIRDecoderInstructionQueueGeneralRegisterFileFloatingPointRegisterFileALUALUMEMFALUDDRControllerProcessorInteceReoderLogicbranchbusprebranchbuswritebackwritebackbusICACHEmissrefillbusvsd�步调步调步调步调步调步调步调步调步调步调步调步调abcaba

  本专题收集HR最适用的人才测评根本学问、胜任力本质模子、MBTI、性格及能力测试、职业取向测试和常用表格等学问,让你招人从此不愁。