FPGA/IC优质开源项目(二)
今天给大家带来3个UART开源IP核,以及一个IIC核。
C910核附带UART
C910的RISC开源核中附带的UART,使用Verilog书写(Verilog1995),单次传输数据可配置,支持5-8bit,支持配置奇偶校验,停止位支持配置1bit和2bit,UART支持apb总线接口。对比协议,完成度很高。
// 文件结构,UART在smart_run里面 |--C910_RTL_FACRORY/ |--gen_rtl/ ##the source verilog code of C910 |--setup/ ##set the environment variables |--smart_run/ ##the RTL simulation environment |--impl/ ##sdc file |--logical/ ##the SoC demo and test bench to run the simulation |--setup/ ##GNU tool chain setting |--tests/ ##include the test suit, linker file, boot code and so on |--work/ ##the working directory |--Makefile ##the simulation script |--doc/ ##the user and integration manual of C910
// 开源地址 // 当然logical下还有ahb,apb,axi总线接口,大家自己可以看 https://github.com/MeDove/openc910/tree/main/smart_run/logical
Alexforencich UART
数据位宽固定为8bit,属于固定完成传输,可配置的点比较少,没有校验位,但带有AXI接口。这个代码完成度相对低一点。
ZipCPU UART
语言为Verilog,可配置1bit或2bit停止位,可配置5bit-8bit的数据位,奇偶校验位,包含一个简单的异步fifo,接口支持AXI-lite以及wishbone。总体来讲完成度比较高,接口也比较丰富。对比协议,完成度很高。
Alexforencich IIC
语言为Verilog,Alexforencich开源核之一,有主机和从机代码,主从机代码均支持axi-lite以及wishbone接口,附带fifo,以及一个初始化模板(用于传感器或者一些芯片控制的配置)。附带完整的测试文件。
// 文件列表 axis_fifo.v : AXI stream FIFO i2c_init.v : Template I2C bus init state machine module i2c_master.v : I2C master module i2c_master_axil.v : I2C master module (32-bit AXI lite slave) i2c_master_wbs_8.v : I2C master module (8-bit Wishbone slave) i2c_master_wbs_16.v : I2C master module (16-bit Wishbone slave) i2c_slave.v : I2C slave module i2c_slave_axil_master.v : I2C slave module (parametrizable AXI lite master) i2c_slave_wbm.v : I2C slave module (parametrizable Wishbone master)
总结
还有一些优质的UART和IIC的IP核,收集完毕会发给大家,对于新学者来讲,可以研究一下代码,尤其是一些对比协议完成度很高的代码,对自己学习的提升也很有好处。
没有回复内容