本文介绍一种嵌入式体系仿真办法,通过一种特别规划的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件言语仿真器软件Modelsim衔接起来,完结了软件和硬件的同步仿真。
缩略词解说:
BFM:总线功用模块。在HDL硬件言语仿真中,BFM完结笼统描绘数据和详细的时序信号之间的转化。
PLI:Verilog编程言语接口,是C言语模块和Verilog言语模块之间交流数据的接口界说。
TCL:字面意思是东西指令言语,是一种解说履行言语,盛行EDA软件一般都集成有TCL。运用TCL用户能够编写操控EDA东西的脚本程序,完结东西操作自动化。
ISS:CPU指令集仿真器,能够履行CPU的机器码。
TFTP:简略文件传输协议,Windows的tftp.exe既是该协议的客户端完结。
SMART MEDIA:一种存储卡,常用于数码相机、MP3。
DMA:直接内存拜访。用于外部设备之间高速数据搬运。
MAC:媒体接入操控器。本文中是指网卡芯片。
前语
传统的嵌入式体系中,规划周期、硬件和软件的开发是分隔进行的,并在硬件完结后才将体系集成在一起,许多情况下,硬件完结后才开端进行实时软件和全体调试。软硬件联合仿真是一种在物理原型可用前,能尽早开端调试程序的技能。
软硬件联合仿真有或许使软件规划工程师在规划前期着手调试,而选用传统的办法,规划工程师直到硬件规划完结才干进行除错处理。有些软件可在没有硬件支撑的情况下完结任务的编码,如不涉及到硬件的算法。与硬件相互作用的编码在获得硬件之前编写,但只要在硬件上作业后,才干真正对编码进行调试。通过选用软硬件联合仿真技能,可在规划前期开端这一规划调试进程。由于软件的开发一般在体系开发的后段完结,在规划周期中较早的开端调试有或许将使这一项目提前完结,该技能会下降初次将硬件和软件衔接在一起时呈现意外而致使项目延期完结所形成的危险。
在获得物理原型前,选用软硬件联合仿真技能对硬件和软件之间的接口进行验证,将使你不会花太多的时间在后期体系调试上。当你的确拿到物理原型开端在上面跑软件的时分,你会发现通过测验的软件部分将会正常作业,这会节约项目后期的许多时间及尽力。
软硬件联合仿真体系由一个硬件履行环境和一个软件履行环境组成,一般软件环境和硬件环境都有自己的除错和操控界面,软件通过一系列由处理器发动的总线周期与硬件的交互作用。本文以一个Mini Web卡的开发介绍一种软硬件联合仿真体系。
该计划的中心是选用一个51单片机仿真引擎GoldBull ISS51(以下简称ISS51),ISS51是51单片机开发环境Keil uVision2的一个插件,ISS51具有衔接Keil和硬件仿真环境Modelsim的接口,能够完结软硬件同步仿真。在该体系中,Keil作为软件调试界面,Modelsim作为硬件仿真和调试界面,ISS51担任软件履行、监控软件断点、单步履行、内存和寄存器数据回来给Keil、CPU总线时序发生和捕获、内部功用模块(如定时器,串口)的作业等功用。
Mini Web卡介绍
Mini Web卡是一个作业在单片机上的Web服务器,供给网口衔接,有大容量文件体系,供给TFTP和HTTP服务。虽然软件体系比较杂乱,但优化编译后,履行代码还缺乏25K,为后续晋级留下了满足空间。
51CPU选用SST89系列,这种CPU具有ISP功用,能够通过RS232串口,直接将方针码下载到CPU。
DMA操控逻辑是一个可编程逻辑器材,选用的是ALTERA的CPLD EPM240,首要功用是完结外围器材之间的DMA传递。由于51CPU进行IO拜访是很低效的,需求24个时钟周期才干进行一次IO拜访,在外围设备之间搬运数据则需求更多的时钟周期,运用DMA操控逻辑能够到达3个时钟周期就能搬运一个字节。本体系中处理多种网络协议,需求许多报文收发和文件体系拜访,选用DMA能够极大地进步51单片机的数据处理速度。DMA通道首要有MAC芯片与RAM之间的数据块搬运,SMART MEDIA和RAM之间的数据块搬运。
网卡芯片选用的是AX88796,首要的长处是能够和51CPU便利地接口;支撑100M以太网,速度高;有较大的接纳报文缓存,能够滑润网络流量,削减因51CPU处理速度慢导致的报文丢掉和重发。
SMART MEDIA是一个移动存储卡,首要用于存储文件,Mini Web卡支撑8M到256M的SMD卡。
文件体系是Mini Web卡的新开发模块,文件体系的测验首要通过TFTP来进行,为此Mini Web卡上的TFTP服务程序进行了特别规划,支撑格式化SMART MEDIA,获取剩下空间,获取文件名列表,上传、下载和删去文件。
软硬件联合仿真的必要性:
Mini Web卡软件模块多,软件开发危险较大。软件对硬件的依靠较强,FLASH存储器的拜访驱动、网卡驱动、DMA驱动,需求软硬件协同调试。
文件体系的开发,在仿真环境下更简单和便利。比如在仿真结束时,能够将SMART MEDIA仿真模型中的数据倒换到磁盘文件中,在仿真开端时,将磁盘文件中的数据加载到SMART MEDIA仿真模型中,在定位文件体系的问题时,这一个功用很有用。
选用软硬件联合仿真,便于体系前期规划。51单片机的外部RAM拜访功率较低,内存复制、外部器材之间的数据块搬运很浪费时间。将许多数据的复制操作或数据块校验、比较操作在CPLD内完结,能够大大改善51单片机处理数据的才能。通过软硬件联合仿真,能够评价CPLD处理数据对功用的改善。
Mini Web卡软硬件联合仿真体系:
软硬件联合仿真首要处理的问题是体系功用规划与验证,它不处理电源、滤波电容、总线电平兼容问题。
做体系仿真,首要要对硬件体系建模。咱们重视的是体系规划的正确性和可履行性。
体系中的串口仅仅用来支撑ISP下载软件,软件部分没有对串口做任何操作,所以体系仿真能够不用考虑。
网卡芯片AX88796,厂商没有供给仿真模型。它与CPU的接口契合ISA接口规范,软件对AX88796的操作是依据NE2000规范网卡芯片规划的,由此咱们建立了一个网卡芯片的仿真模型。咱们规划了一个MAC BFM来仿真网卡芯片的ISA接口,NE2000界说的寄存器在C模型中完结,MAC BFM与NE2000寄存器C模型通过PLI接*换数据。
SRAM仿真模型是很简单获取的,许多器材出产商都供给Verilog仿真模型,但器材出产商供给的Verilog仿真模型都包括杂乱的延时操控代码,这会影响仿真速度。依据经历,咱们能够保证SRAM在单板规划中被正确运用,不会发生时序问题,所以咱们能够选用一个简化的SRAM仿真模型,这是咱们自己规划的,有用代码只要十几行。
51CPU BFM 担任单片机管脚时序的发生和捕获。51CPU BFM是与ISS51严密绑缚的,由ISS51装置程序供给。
SMART MEDIA是三星公司供给的仿真模型,咱们运用的也是三星公司的同类型存储卡。该模型能够用于验证软件操作SMART MEDIA的正确性和DMA Controller的接口时序。
DMA Controller是Mini Web卡硬件开发的一部分,将逻辑规划代码运用于仿真,既能检测逻辑规划的正确性,又能使整个仿真体系得以正常作业。
将上述硬件模型衔接起来,发生下图所示硬件体系模型图:
图2. Mini Web卡硬件模块电路图
图2中U11为SMART MEDIA仿真模型,U4为DMA Controller模型。
虚拟网卡
做体系仿真,有必要输入来自实在国际的鼓励,并将仿真体系的输出传递到实在国际。即便是不能衔接到实在国际,也应该供给模仿实在国际的输入,并对仿真体系的输出进行检测和剖析。
关于Mini Web卡来说,它和实在环境是通过网口衔接的。运用虚拟网卡技能,能够将图3中的MAC C Model与虚拟网卡进行通讯。
关于作业在Windows体系上的运用程序来说,它并不知道网卡是虚拟的仍是实在的,运用程序通过虚拟网卡收发数据,事实上是与仿真体系在进行网络通信。
这样就能够运用TFTP向Mini Web卡仿真体系传递网页文件,运用IE阅读Mini Web卡仿真体系中的网页,Mini Web卡的一切功用都能够被查验。
运用网络臭探器Sniffer能够监控虚拟网卡的报文流,便利协议调试。
仿真加快技能
软硬件联合仿真,影响仿真速度的瓶颈在HDL代码部分的仿真。假如不设法进步HDL代码部分的仿真速度,软件调试就十分低效。
进步硬件仿真速度的办法之一是软件硬件仿真选用事情同步,只在CPU拜访IO时坚持软件和硬件是同步的。
仿真加快办法之二是硬件仿真体系时钟休眠。关于Mini Web卡来说,只要DMA Controller是受时钟操控的,软件没有操作DMA Controller的期间,DMA Controller的运作是毫无意义的,所以能够在非DMA操作期间,对时钟进行休眠;ISS51在每次IO拜访时,给出与前次IO拜访的时间差,这个时间差通过处理能够作为时钟休眠的时间段。假如ISS51接连进行IO拜访,就不会发生时钟休眠了。DMA Controller作业于查询办法,能够选用时钟休眠技能,而不会导致仿真与实在成果的不一致。
办法之三是,缩短SMART MEDIA仿真模型中的一些长延时的时间参数。由于在等候SMART MEDIA进入安排妥当状况时,CPU有必要接连查询IO,影响仿真速度。咱们首要用于软件功用验证,这种修正也是能够承受的。
办法之四,在软件规划上,慎重运用外部中止,由于一旦中止发动,ISS51需求在每个机器周期查询是否有中止信号,导致软件仿真和硬件仿真在每个指令上都进行同步,影响仿真速度。假如一定要运用外部中止,主张用C模型替代Verilog模型,这样可不影响仿真速度;或许由用户依据外部模块发生外部中止的机遇,运用ISS51的操控指令,在恰当时间使能ISS51的中止模块。
在一个一般PC (CPU为AMD速龙1000,SDRM512M 133),作业Mini Web卡仿真体系,运用PING指令测验Mini Web卡仿真体系的呼应速度:
Reply from 10.10.112.76: bytes=32 TIme=64ms TTL=128
运用IE翻开Mini Web卡仿真体系中的网页文件,感觉和拨号上网的速度差不太多。创立多个TFTP衔接,一起向仿真体系传递或下载网页文件,一起运用IE进行网页阅读,都无呼应中止现象呈现。
总结
运用软硬件联合仿真,Mini Web卡不需求硬件就能进行悉数功用的仿真,增强了体系规划成功的决心。软硬件联合仿真便利体系规划调整,能够在规划前期*估功用,便利软件和硬件的debug,是一个值得推行的技能。