QEMU仿真中串口的输入和输出

最近在QEMU上搭建CM33的仿真环境,目前QEMU支持的CM33的设备是musca-b1等系列板卡,这个系列是ARM公司做的一个CM33的参考设计,也有相应的硬件开发板。因为我们主要就是关心仿真环境,所以只是关心系统的memory map和串口相关的资源.实际上对于MUSCA开发板, QEMU只是支持NVIC,串口和Systick这几个模块,其它诸如GPIO,timer等都是不支持的。尽管...

继续阅读 »

HAPS系统中的UMRBus

基本概念UMRBus是HAPS系统中用于在用户Host PC和HAPS系统(FPGA板卡)之间进行通信的一个总线协议。UMRBus定义了从硬件到软件的一整套交互协议,可以让用户方便的将上位机软件和HAPS系统进行软件上的集成。除了支持数据交互之外,UMRBus还支持硬件中断的定义,每一个UMRBus的实例都可以定义一个中断触发信号和16位位宽的中断类型信号的传输,UMRBus中断还包含了握手...

继续阅读 »

TCL语言小试

搞芯片的要是不会tcl真的有点说不过去,虽然严格上我并不算是搞芯片的,但是tcl还是有必要了解一下的,因为FPGA里面还是要用到很多tcl脚本的。下面我们就根据一个具体的例子来看看tcl是怎么读取二进制文件的。先看需求现在我们要把一个二进制的文件通过tcl读取并转换成一个列表,二进制文件通常是我们程序生成的一个bin文件,转换成列表之后可以用于更新Memory或者仿真等操作。程序编写都说Go...

继续阅读 »

后仿中搞定ROM Overlay

我们知道在一些特殊的调试场合,我们可能需要进行综合后,或者布局布线后的仿真。这个具体的仿真步骤我们在前面的文章中已经做过介绍,这里就不再赘述。今天我们要研究的问题是后仿中的ROM Overlay,ROM Overlay其实就是对运行的ROM程序进行修改,前面文章中我们也专门介绍了如何对生成的FPGA bit进行Overlay操作。这里我们来看看在后仿中如何进行如何进行ROM Overlay操...

继续阅读 »

FPGA中Gate clock的处理

今天我们来看看FPGA porting时候对ASIC中Clock Gate的处理。我们知道ASIC设计中为了功耗考虑,常常会有大量的Clock Gate。而对这样的ASIC做FPGA验证的时候,这些Gate Clock会成为一个很大的障碍,因为FPGA中并没有这么多Clock Gate,并且Clock Gate会极大的影响FPGA设计的时序。因此,为了更好的实现FPGA的porting,我们...

继续阅读 »