当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于VHDL语言的IP核验证

 引言
       在IC(integrated circuit.集成电路)发展到超大规模阶段的今天,基于IP(Intellectual Property,知识产权)核的IC设计及其再利用是保证SoC(system onchip,片上系统)开发效率和质量的重要手段。如果能对IP核进行验证、测试和集成.就可以加速SoC的设计,而这需要从以下5个方面进行考虑。

代码纯化.指在代码设计中及完成后进行自定义的、IEEE标准的、设计重用的、可综合性和可测试性等方面的规则检查;
代码覆盖率分析.研究仿真中的测试矢量是否足够;
设计性能和面积分析.在设计逻辑综合过程中分析所设计的RTL所能达到的性能和面积要求;
可测性分析:IP核设计重用中的关键技术。如何保证IP核的高测试覆盖率,如何保证IP核在集成到SoC中后的可测试性.是该阶段分析的主要目标。所以在IP核实现之前.要检查IP核设计中是否违反了可测性设计规则;
低功耗分析:SoC的重要衡量指标。我们在IP核设计阶段就需要将TP核功耗参数进行精确估计并进行相应的功耗优化设计;基于此.本文重点讨论在IC设计过程中IP核的验证测试问题并以互联网上可免费下载的原始IP核资源为例.在与8位RISC架构指令兼容的微处理器下载成功。

  1 IP核与RISC体系

  1.1 IP核

  IP核是具有知识产权的集成电路芯核的简称其作用是把一组拥有知识产权的、在数字电路中常用但又比较复杂的电路设计功能块(如FIR滤波器SDRAM控制器、PCI接口等)设计成可修改参数的集成模块构成芯片的基本单位,以供设计时直接调用从而大大避免重复劳动。

  1.2 RISC处理器

  RISC(reduced instruction set computer.精简指令系统计算机)是IBM公司提出来的、在CISC(complerinstruction set computer复杂指令系统计算机)的基础,上继承和发展起来的一种新型系统结构技术。具有结构简单指令合理成本低廉快捷高效等特点。应用前景被普遍看好。国际IT领域的大公司如IBM、DEC、Intel、ARM、Motorola、Apple、HP等先后将其力量转向RISC.并已经开发出各种基于RISC的芯片或IP核。

  SoC是进行IA(Intel Architecture.智能家电)产品开发的主要方法.而基于RISC体系的EP(embedded processor,嵌入式处理器)则是SoC芯片的核心。可以说,RISC是当前计算机发展不可逆转的趋势。

  1.3 VHDI语言

  VHDL(Very High Speed Integrated Circuit Hardware Description Language.集成电路硬件描述语言)与Verilog HDL程序都很适合用来设计架构RCMP reconfigurable mICroprocessor,可重新规划的微处理器)。为此.我们利用VHDL设计一种嵌入式RISC8微处理器及应用芯片.设计后的IP核下载到FPGA(Field Programmable Gate Array.现场可编程门阵列)芯片上做验证,并在开发板构建视频接口模块等以利于调试和应用。

  2 IP核的仿真与测试

  2.1 SoC的测试策略

  SoC芯片的测试比传统的ASIC测试要复杂得多.全面的功能测试通常是不现实的  目前常采用的策略是分别测试所有的电路功能模块在SoC芯片中存在各种不同类型的电路模块,每个模块所要求的测试方式也不相同。SoC芯片中的模块基本可以分为三类:CPU/DSP、存储器模块、其他功能电路模块。CPU/DSP的测试与传统的CPU/DSP测试类似.通常采用边界扫描方式结合矢量测试方式。存储器的测试一般采用BIST测试,比较快捷而容易控制。其他的电路模块按设计难易程度或应用方便性,采用边界扫描或BIST。

  2.2 IP核的测试方案

  IP核的研究平台有很多种.但一般硬件仿真调试器费用昂贵(几千到数万元),对于普通用户来说难于承受。为此,本文利用免费的IP核进行改写,利用Xilinx ISE开发软件和汇编语言翻译过来的机器码作为测试激励,完成了RISC结构的Xilinx Spartan2系列的FPGA芯片CPU指令的验证和测试方案.具体方案如下:

  (1)以VHDL/Verilog语言改写或新写8 bit pipelined RISC 结构之处理器模块、内存控制器模块以及视频控制接口模块.然后通过Xilinx ISE 4.1/5.2、ModelSim完成行为级仿真、综合以及布局布线等。

  (2)以某个应用为例将C语言或汇编语言编写的测试算法程序存储在SRAM中.实现嵌入式处理器及视频控制接口并下载到FPGA.从而生成一块可编程的控制器芯片构成一个简化SoC应用。

  (3)如果SoC应用成功.则可通过cell-Base Design Flow将其转成ASIC版图.实现流片。

   2.3 IP核的验证方法

  在芯片的设计流程中设计的验证是一个重要而又费时的环节。在进行Top_Down设计时.从行为级设计开始到RTT级设计再到门级设计相应地利用EDA工具进行各个级别的仿真.行为仿真和RTL级仿真属于功能仿真其作用是验证设计模块的逻辑功能  门级仿真是时序仿真用于验证设计模块的时序关系无论是功能仿真或是时序仿真仿真方法有两种.即交互式仿真方法和测试平台法

  (1)交互式仿真方法。该方法主要是利用EDA工具提供的仿真器进行模块的仿真它允许在仿真期间对输入信号赋值,指定仿真执行时间,观察输出波形。当系统的逻辑功能、时序关系达到设计要求后,仿真结束。缺点是输入输出不便于记录归档尤其是输入量比较复杂时,输出不便于观察和比较

  (2)程序仿真测试法。就是为设计模块专门设计的仿真程序(也称为测试程序),以实现对被测模块自动输入测试矢量,并通过波形输出文件记录输出,便于将仿真结果记录归档和比较。利用测试程序可以对一个设计模块进行功能仿真和时序仿真。[!--empirenews.page--]

  2.4 IP核的测试仿真

  综上所述,下面给出RISC 8测试仿真实例。该测试仿真大致可分为5个步骤

  (1)给Wave(波形)窗口添加信号。首先添加的是RISC 8的整体Structure(结构)信号。

  (2)行为级仿真初步测试。在初步测试中.“portb”信号的输出如果是“FX”,则说明系统必然存在问题;如果是“OX”则说明系统没有发现问题要进行进一步的测试。

  (3)行为级仿真进一步测试。在进一步测试中,要注意的信号是romaddr、romdata以及各种指令控制信号。

  (4)源程序修改,再仿真。在上一步中定位到出错的地方,然后回到源程序中找到所有出错信号出现的地方,仔细分析,并结合波形图进行修改,然后重复上述步骤进行再仿真。

  (5)布图布线后的仿真(后仿真)。事实上在行为级仿真与后仿真之间还有3个仿真过程,但一般来说只要能通过后仿真则其他的仿真也就没有问题。

  在后仿真过程中,看一下“portb”的输出是否与行为级仿真一致,若一致则测试通过。如果不一致则必须返回原程序和行为级仿真,对时序进行仔细分析(因为这种情况大都是因为加入延迟后原来的时序发生改变)。

  
       3 IP核在RISC架构中的下载实例

  3.1 RISC处理器的选择与指令的测试

  我们选用MICrochip公司生产的PICl6c5x-Xilinx Spartan2系列中的Xc2s150微处理器下载.因为其FPGA芯片架构指令与8位RISC兼容.能够很容易实现RISC架构之指令集。

  RISC的测试激励文件是由汇编语言测试程序翻译而得到的.例如test3程序测试循环移位.test5测试逻辑操作指令、test8测试端口等。

  testl程序是测试incf和的decf指令的.行为级初步测试中,“portb”输出为“01”,如3.3中所述,这并不能说明没有问题接着做行为级进一步测试

  3.2 测试激励程序的加载步骤与验证

  选择“Project”莱单中的“News Source”选项,在弹出的“New”对话框左侧选择文件类型为“Test Bench Waveform”,填入文件名,单击下一步,在弹出的“select”对话框中选择关联的源为“anss_risc8_top”,单击下一步.然后单击“Finish”后会启动HDL Bencher.在这个软件环境中可以输入激励信号最后将由汇编测试程序翻译过来的机器码信息作为激励信号输入保存.输入测试时间后退出HDL Benche。

  在进一步测试中也没有问题,然后,我们可将测试程序进行如下改变.

    incf x,f:X<=FE
    incf x,f;X<=FF
    incf x,f:X<=00
    incf x,f;X<=01
    decf x,f:X<=00
    decf x,f:X<=FF
    decf x,f:X<=FE

  将程序中的最后一个incf改为的decf.这样制造了一个错误.重新进行仿真,发现"portb"的输出仍然为"01"而不是预想的"F1"。由此可见程序中存在问题。仔细分析后发现问题出现在“btfss”变为1时.此时alu_z为1而实际上它应该是0。由于alu_z出现在算术逻辑运算模块ALU的一个子模块alu_dp中,因此对alu_dp进行分析,在wave窗口中加入alu_dp模块的信号,同时在ISE4.1i中打开alu_dp的源文件进行分析.经分析发现alu_z变为1是由于源程序中对alu_z的处理不完备.少考虑了一种情况。根据这种情况对源程序alu_dp.vhd进行修改如下:

  a.signal bittest,temp:std_logIC_vector(7 downto 0);
    --add signal temp
    b.u_zero:process(bittest,op,longq)
    begin
    if(bittest=ZEROBYTE)  and&nbsp; (op=ALU_OP_BITTESTCLR)
    then zero<='1';
    elsif(bittest/=ZEROBYTE)  and  (op=ALU_OP_BITTESTSET)
    then zero<='1';
    elsif longq(7 downto 0)=ZEROBYTE and(op/=ALUOP_BITTESTSET)
    then zero<='1';--new add
    elsif temp="zerobyte" and op="ALUOP"_BITTESTSET
    then zero<='1';--new add
    else
    zero<='0';
    end if;
    end process;
    c.bittest<=bitdecoder and a;
    temp<=bitdecoder or a; --new add

  修改存储源程序后再次仿真的结果是正确的(即portb输出为“F1”)。将测试程序恢复,仿真结果也是正确的。再进行后仿真也正确.至此.test1程序测试完毕。

  4 结束语

  集成电路发展到超大规模阶段后,芯片中凝聚的知识已经高度浓缩。专有知识产权的IP核设计及其再利用是保证SoC开发效率和质最的重要手段。 随着CPLD/FPGA的规模越来越大,设计越来越复杂,IP核是必然的发展趋势。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭