单片机软硬件联合仿真解决方案
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工作于查询方式,可以采用时钟休眠技术,而不会导致仿真与真实结果的不一致。
javascript:window.open(this.src);" style="cursor:pointer;"/>
方法之三是,缩短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,是一个值得推广的技术。