小梅哥AC620学习记录—UART_EEPROM_part2

串口传输数据到EEPROM

解决第二步中命令解析部分的仿真后,开始搭建系统整体并进行仿真,RTL电路结构如下

小梅哥AC620学习记录—UART_EEPROM_part2_第1张图片
rtl结构,包含I2C模块,UART发送和接收模块,命令解析模块

仿真波形记录

小梅哥AC620学习记录—UART_EEPROM_part2_第2张图片
modelsim仿真报错
小梅哥AC620学习记录—UART_EEPROM_part2_第3张图片
39行代码,testbench中rst_n,但是之前写的代码风格不统一,用的是rstn。
记住一点:你的代码不是只给自己写的,要严格按照代码风格,方便调用,也方便他人理解!!!

小梅哥AC620学习记录—UART_EEPROM_part2_第4张图片
88行代码,在testbench中直接用I2C,而在top层例化的时候加了一个名字u3_I2C.
注:单个模块在例化时不要加名称作区分

仿真波形记录

小梅哥AC620学习记录—UART_EEPROM_part2_第5张图片
Sda信号处于高阻状态,有问题

小梅哥AC620学习记录—UART_EEPROM_part2_第6张图片
testbench错误,uart_tx和uart_rx的波特率设置

前仿通过,下板子有问题,需要注意的地方:
①相同协议在不同系统里面的细小差距,I2C读取EEPROM和单独串口收发中,UART协议的描述方式
②数据帧格式对系统稳定性的影响较大,例如00和FF是较差的数据头和数据尾,推荐使用AA或者55,避免信号传输造成的读写错误。

注:
AC620老版本开发板,eeprom型号是AT24C64,难点在于eeprom的写入有页翻卷和5ms写周期的特性,考虑的因素较多。

你可能感兴趣的:(数字IC设计,fpga开发)