标签 Verilog 下的文章

SWD硬件实现

最近还在研究SWD协议,前面一篇文章中我们已经讲到了SWD的基本协议,这篇文章我们来看一下这个协议的一个硬件实现。本次硬件设计采用Verilog,因为Verilog也已经扔下了很久了,所以代码质量一般,也没有做什么测试,这里只是简单的看了一下输出的波形,其它的暂时没有关心。设计的总体思路实际上整个SWD协议还是非常简单的,硬件实现也是通过简单的状态机就可以实现,这里也刚好回顾一下状态机的写法...

继续阅读 »

一个简单的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...

继续阅读 »

Vivado FPGA 后仿流程

FPGA的设计离不开仿真,我们最常用的是RTL的行为仿真,而对于FPGA设计而言,如果遇到了比较难以调试的Bug的时候,我们还需要进行后仿。所谓的后仿,其实就是布局布线之后的仿真,这个时候仿真会带有各种延时信息,也是最接近器件行为的仿真。虽说是仿真,可以看到各种信号,但是调试起来相当于前仿还是有很大区别的,这里就简单介绍一下后仿的基本流程。仿真准备后仿,其实就是一个带有各种时延信息的仿真,基...

继续阅读 »