在FPGA调试时,有时希望能通过上位机能对FPGA内的寄存器进行读写操作。如果有软件人员配合,可以利用SOC的AXI, AHB, SPI或I2C等总线接口进行操作。那如果没有这些,只有一台PC怎么做呢?可以买个USB转UART模块,利用串口助手来读写FPGA内寄存器。所以在FPGA内需要有个UART转局部总线的模块。这里用UART转AHB模块来实现。
一、整体框图
整体设计在Tang Nano 4K开发板上实现,框图如下。uart_ahb_mst_top模块就是UART转AHB模块,ahb_slv模块是AHB总线从模块,此模块的可读写寄存器用于控制testpattern模块的端口。rtc_osd是个OSD叠加模块(借鉴了黑金开发板的OSD模块),叠加了几个数字点阵字符在测试图画面上,最后经DVI_TX_Top模块输出。
参考设计可从如下地址下载https://download.csdn.net/download/cjie221/90481399
二、串口工具
本人使用USB转TTL串口模块,TXD和RXD分别与板上的47,48pin脚相连。软件就使用普通的串口助手就可以。网上有比较多可以下载。
写寄存器命令格式w 地址 数据,例如:w 00000005 00000002
读寄存器命令格式r 地址,例如:r 00000001
命令,地址和数据之间用1个空格隔开,命令w和r,大小写都可以。
地址和数据都用32位的十六进制表示,不用加0x前缀。
三、上板实测
没有显示器,就用一个HDMI转USB Typec采集卡转接一下,将手机临时当个监视器用。用串口发命令去配置寄存器就可以实时看到效果。
不过这个UART转AHB资源有点多,要2K资源,Tang Nano 4K的器件资源显的有些小了。以后要换个资源多一些的开发板才好。