Zebu学习笔记(2)- 设计移植

Zebu的设计理念是尽量减轻移植的复杂度,所以整个工程的设计也是和Verification平台一样有相应的testbench链接我们的Design(DUT)和外设(测试环境),如果我们的Verification平台已经有相应的testbench,那么我们可以直接复用这部分代码,否则我们要根据我们的实际需求建立一个Testbench用于描述Design和外设链接关系。如果我们的DUT和测试环境...

继续阅读 »

Zebu学习笔记(1)- 系统介绍

Zebu Synopsys公司推出的高容量仿真系统,具有移植简单,调试方便等多种优点。Zebu支持多种软硬件结合的调试方式,可以处理多数在Verification下具有挑战性的Bug调试,Zebu和通过PCI接口和PC通信,支持多个用户分Slot同时访问。另外Zebu还支持通过ICE(Direct In-Circuit Emulation)和Smart Z-ICE两种方式连接DUT,ICE可...

继续阅读 »

一个简单的PWM发生和捕获Verilog IP设计

这次IP的设计是有一个非常现实的应用需求的,在测试系统中,我们需要对芯片出来的PWM进行捕获或者对芯片出来的频率信号进行计算,另外还需要产生一定的PWM波形激励,用于测试芯片的PWM捕获功能,不过这里只是提供简单的PWM输出,诸如对称PWM,多通道同步等功能,这里暂时没有实现。首先我们来看看PWM波形捕获的设计,具体的需求是要计算输入信号的频率和占空比信息。简单的想法就是用一个计数器对波形进...

继续阅读 »

Picorv32处理器中断的实现

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

继续阅读 »

Python 元编程实现类方法的注册

Python元编程,听起来就是一个非常高大上的名词,确实,元编程这个概念我研究了一天也没怎么研究明白。其实这个概念真的是在实际应用场景中很难用到,但是说巧不巧,这还真的就被我碰上了,无奈之下,只好研究一番。首先我们还是来看看应用需求:我的程序中要实现一个类似命令分发器的功能,也就是根据不同的命令字符串调用相应的函数,这个功能一般都是通过函数的字典实现的,我在最开始也是通过这种方式实现的,但是...

继续阅读 »