标签 FPGA 下的文章

Picorv32处理器中断的实现

Picorv32是一个非常精简的RISCV核心,实现了RISC-V RV32IMC指令集。源代码开源且核心只有一个不到3000行的Verilog文件,FPGA实现非常简单,可以使用开源的iverilog软件进行仿真,非常适合FPGA学习和性能要求不高的一些FPGA应用场合。实际上Picorv32已经有很多应用,甚至有ASIC上的应用,这里作为学习目的,我也用这个小核心做了一个非常简单的SOC...

继续阅读 »

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,我们...

继续阅读 »