硬件在环仿真仿真问题

【图文】硬件设计及仿真_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
硬件设计及仿真
阅读已结束,下载本文到电脑
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢硬件仿真与烧写程序结果不一样原因总结
> 硬件仿真与烧写程序结果不一样原因总结
硬件仿真与烧写程序结果不一样原因总结
  一,配置问题:实际烧片时单片机的配置字与仿真的时候是不是一样?烧写时是否配置正确?本文引用地址:
  二,资源问题:单片机的ROM、RAM大小与仿真器的ROM、RAM大小是不一样的!
  三,驱动能力问题:通常仿真器的驱动能力比单片机要强;可以分两步检查,一是分别用仿真器与单片机时对应IO口波形进行对比,二是当仿真器与外设连接与不连接时波形的对比;
  要进行基本要素分析:单片机供电正常?起振没有?复位电路正常?芯片损坏?
  【单片机上电不运行情况的分析】
  1.单片机是没有运行,还是运行不正确?
  2.如果是没有运行,检测单片机的基本参数是否已经满足&工作电压要在芯片的引脚处测量&&复位引脚的复位曲线如何&&晶振是否已经起振&&芯片损坏,或者部分功能损坏&。
  3.如果是运行不正确,检测&用了看门狗,没有处理好,芯片上电后处于不停的复位状态,看起来就象没有没有工作起来&&是否进入了ISP状态&&对单片机写入对所有的IO口以1秒取反一次的程序进行测试&
  【单片机调试办法】
  用LED进行状态指示,用串口进行数据指示,比用其它外设指示更可靠;
  加入断点,烧写时是在不同的语句后面加入WHILE(1);
  分模块调试,把每个小功能先调试通过,再进行组合。
   C本身就是编译与仿真一体的,当不要外部数据时很方便,当要外部输入时(比如用定时器作计数器用)它提供几个调试输入用的窗口可用它们来摸拟输入,同时 C本身提供一种调试函数用来配置摸拟外部输入的功能,这我在学习时看的一本书上讲过如用定时器作外部事件计数,调试函数由自己根据需要按特定的格式来编辑再按KEIL C的要求调入即可。学习时可用这种方法,做产品时最好是用仿真器调试。下面我给出我以前试过的用定时器作外部事件计数时摸拟外部输入的调试函数,并写出 C调用的步骤如下:
  1、编写如下信号函数:
  single void t0_singal(void)
  while(1)
  PORT3|=0x10;//pull INT0(P3.4) high again
  PORT3&=~0x10;//pull INT0(P3.4) low and generate interrupt
  PORT3|=0x10;//pull INT0(P3.4) high again
  twatch(CLOCK);//wait for 1 second
  2、在DEBUG状态下单击DEBUG菜单在下拉菜单中单击&Function Editor(Open Ini File)... &选项, 弹出新屏幕后,将&打开&窗口关闭,这时屏上有Function Edito窗;
  3、在Function Editor窗中输入上面的函数;
  4、保存(注意:扩展名为.ini),编译该程序,成功后关闭Function Editor窗口;
  5、执行用户程序(必须连续执行);
  6、在屏幕左下脚的命令窗口中,键入t0_singl()后(必须回车)妈可向P3.4源源不断地提供脉冲信号。
  我们使用Keil C调试某系统时积累的一些经验
  1、由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响。在Windows2000下面,我们可以把字体设置为Courier,这样就可以显示正常。
  2、当使用有片外内存的MCU(如W77E58,它有1K片外内存)的时候,肯定要设置标志位,并且编译方式要选择大模式,否则会出错。
  3、当使用Keil C跟踪程序运行状态的时候,要把引起Warning的语句屏蔽,否则有可能跟踪语句的时候会出错。
  4、在调用数组的时候,Keil C是首先把数组Load进内存。如果要在C中使用长数组的时候,我们可以使用code关键字,这样就实现了汇编的DB的功能,Keil C是不会把标志code的数组Load入内存的,它会直接读取Rom。
  5、当编程涉及到有关通信,时序是很重要的。拉高管脚的执行速度远远比检查管脚电平的要快。
  6、在等待管脚电平变化的时候,我们需要设置好超时处理,否则程序就会因为一个没有预计的错误而死锁。
  7、能用C语言实现的地方,尽量不要用汇编,尤其在算法的实现,用汇编是晦涩难懂。
  8、程序的几个参数数组所占篇幅很大,其中液晶背景数组最长,有四千个Byte,因而把那些初始化数组都放在另外一个C文件,在主文件使用使用关键字extern定义,这样就不会对主文件的编写造成干扰。
  9、所有函数之间的相关性越低越有利于以后功能的扩展。
  10、6.20版在编译带code关键字的数组时,编译通过但是单片机运行结果是错误的,改用6.14版后正常。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一本人菜鸟,问个MDK仿真的问题,调试了1天还是仿真出错!求大神讲讲
[问题点数:20分]
本人菜鸟,问个MDK仿真的问题,调试了1天还是仿真出错!求大神讲讲
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|HardwareEmulationPlatform(硬件仿真平台)在IC验证中的运用情况如何?- 百度派
{{ mainData.uname }}
:{{ mainData.content }}
{{ prevData.uname }}
:{{ prevData.content }}
{{ mainData.uname }}
:{{ mainData.content }}
0 || contentType !== 1" class="separate-line">
:{{ item.content }}
芯片(集成电路)
HardwareEmulationPlatform(硬件仿真平台)在IC验证中的运用情况如何?
问题说明(可选):
扫一扫分享到微信
长处相干:MentorVeloceEmulatorAE先答复你的题目:这些东西在IC验证事变中的利用环境怎样?可视为Simulator的补充(不是更换),软件仿真的硬件化,极大进步了仿真服从。越来越多的公司开始采购利用emula...
&&&&长处相干:MentorVeloceEmulatorAE&&&&先答复你的题目:&&&&这些东西在IC验证事变中的利用环境怎样?可视为Simulator的补充(不是更换),软件仿真的硬件化,极大进步了仿真服从。&&&&越来越多的公司开始采购利用emulator,除了像华为、复兴如许的至公司,很多研究所和新兴小公司也在纷纷购买,emulator成为平台化中间的特点越来越明显,也影响了别的EDA东西的采购,买emulator送simulator和别的toollicense啦。(想想花了这么多钱买了台emulator,然后厂商说,亲,搭配你和我家的simulator、Power阐发东西、DFT东西更好用噢,一起买有优惠噢。你买不买?)&&&&与传统的仿真(simulation)相比,emulationplatform将对IC的验证要领学孕育产生怎样的影响?没啥影响,比如UVM、assert、coverage等成果simulator都支持,emulator在硬件部分并不支持,但是可以通过与PC相连接,在PC端运行支持相应的成果,也可称之为co-simulation了。可以说,simulator成果最全,emulator不那么全,但可以跑得更快。&&&&本身补充个题目:emulation与FPGAprototype有何异同?最大的差别是:emulation可以验证极大范围的芯片计划,如2billiongate,这涉及到多达100块板卡,每张板卡上按16个验证芯片单位算,也便是利用高出了1600块验证芯片单位,内里用到的芯片间切割、布线、时序阐发都是极巨大;而FPGAprototype一样平常用于小范围芯片验证,四颗以上切割、布线就很困难,且速率就降落得很锋利,根本与emulator一个级别了。(emulator贵不是白给的)&&&&从tool的角度讲,emulator一样平常利用厂商独家定制的全flowtool,由之前的综合、切割、布线、时序阐发、运行、trigger、上下载、查察波形等都专门为此计划和优化,并且为专门的team来处理惩罚用户利用进程的种种题目,颠末很永劫间的积聚后,就变得很稳固与强大;而FPGAprototype综合、切割、布线、FPGA芯片、平台计划与制造、外插板卡等都大概是差别的提供商,所利用FPGA芯片也是通用芯片,没有针对大范围验证需求专门优化,也导致了在大范围计划验证上的重重困难。&&&&emulator可以为是软件simulator的硬件化,是假造天下;FPGAprototype是物理芯片流片前的原型化,是真实天下。simulator/emulator都有计划频率和运行频率的差别,比如计划里利用100MHZ的时钟,运行的时间只有100KHZ,一帧图像仿真大概要几个小时才华结束。要与外界硬件连接也必须利用种种专门的转接卡,如speedadapter,来办理emulator与真实天下里硬件的速率不立室的题目;而FPGA里跑的时钟频率便是真实频率,大概为了将就FPGA的可运行频率举行降频,比如ASIC芯片能运行在1GHZ以上的,在FPGA原型时只跑100MHZ。就算云云,FPGAprototype的运行速率也惊人,以是大概在上面接种种真实的器件,如DDR内存条、FLASH模块、PHY卡、与电脑连接跑实际的运行,可以为便是块真实的电路芯片。&&&&----------------------------------------------------------&&&&通常以为emulator明白为介于simulator和FPGAprototyping间的产品,同时拥有二者的好处,如方便debug波形、可利用force/release下令、查抄包围率、打印display信息、同时运行速率比较快(约2Mhz)等,最大的缺点预计是太贵吧。&&&&成为VeloceAE一段时间后,发明Emulator的成果和特点不止这些。C/M/S三家的产品各有本身的特点吧,比如Palladium利用定制化处理惩罚器、Veloce利用定制化ASIC芯片、Zebu利用XilinxV7FPGA等,在利用上也各有本身的一套流程。&&&&Emulator根本上可分为三种模式,基于cycle级的软硬件连合仿真、基于事件级Transaction的软硬件连合仿真(Veloce叫TBX)、基于ICE模式的,根本上重点利用后两种。ICE模式运行速率最快,靠近于FPGA的运行模式,便是DUT和TB都可综合例化在硬件中,别的还可外接硬件作为鼓励源,比如PCIE、Ethernet、SATA等配置,通过SpeedBridge来办理真实硬件和Emulator的速率差题目。缺点也很明显,便是TB要是可综合的,大概利用向量模式,限定了其利用方法。&&&&基于事件级Transaction的软硬件连合仿真(TBX),便是DUT运行在硬件上,有一套实现连接软硬件,包括软件侧、硬件侧、通道,对用户而言,DUT例化连接相应的模块,该模块将很多硬件举动包括时序信息等抽象成很少的信息量,传输通道只需传少量数据,软件侧调用对应的function就可以了,软件不克不及随意控制硬件侧宛如的举动,称之为事件级Transaction。如许做的长处天然是极大淘汰了软硬侧数据的交互量,大大加快了仿真速率。&&&&利用TBX方法,可以为Simulator的硬件化,速率上比不上ICE模式,但是成果上比ICE强大得多。软件侧通常验证上利用的东西、要领、流程根本都可以利用,比如UVM、包围率、功耗验证、SC/SV/C/C++、Qemu上接操纵体系如Windows/Linux等。&&&&别的,Emulator资源可更方便的多人共享利用,根本可以为和办事器相似。一家公司有多个site,在美国、欧洲、印度、中国等,都可长途访问,实现资源利用率最大化。编译是不需在牢固的办事器完成的,利用Emulator时,只需大略的下令就主动将BIN文件下载到Emulator、配置、运行,按必要dump波形并上传,方便过后查察,而将Emulator让出来给其他人利用,并且像simulator那样可随意运行恣意时间克制下来、下一步下令后连续运行。相比较FPGA原型平台,根本上是放在实行室,一段时间一个人私家单独利用,不容易长途,且每次搭环境花时间不容易,debug抓波形比较贫苦,且定位时必要重复去运行去抓取issue,与硬件周边相干的设置占用时间很长。&&&&Emulator必要利用大量颠末验证的专有library和model,比如种种DDRRAM、transactor库、VIP等,比FPGA支持更物理层的信息。&&&&先想到这么多,转头渐渐修改修饰。
扫一扫分享到微信
提问{{title}}
HardwareEmulationPlatform(硬件仿真平台)在IC验证中的运用情况如何?
,才能进行回答
一个问题只能回答一次,请&nbsp点击此处&nbsp查看你的答案
提问{{title}}
1人关注了此问题

我要回帖

更多关于 硬件仿真加速器 的文章

 

随机推荐