update README

This commit is contained in:
WangXuan95 2021-01-27 18:13:39 +08:00
parent a528872406
commit 927a3856cf

View File

@ -205,7 +205,7 @@ AXI4 总线的地址awaddr和araddr统一是字节地址模块会根据
该模块的 AXI4 接口不支持字节选通写入,没有 wstrb 信号,每次至少写入一整个数据位宽,例如若 wdata 的位宽是 16那么一次至少写入2字节。
该模块的 AXI4 接口支持突发读写,突发长度可取 1~256 之间的任意值,即 awlen 和 arlen 取值范围为 0~255 。例如在一次写入动作中awlen=12则突发长度为 13若 wdata 的位宽是 16 ,那么该次突发写一共写了 13\*2=26B。
该模块的 AXI4 接口支持突发读写,突发长度可取 1\~256 之间的任意值,即 awlen 和 arlen 取值范围为 0\~255 。例如在一次写入动作中awlen=12则突发长度为 13若 wdata 的位宽是 16 ,那么该次突发写一共写了 13\*2=26B。
另外,每次突发读写不能超越 DDR1 内的一个行的边界。例如对于 MT46V64M8每个行有 8\*2^11/8 = 2048B那么每次突发读写就不能超越 2048B 的边界。
@ -348,7 +348,7 @@ AXI4 总线的地址awaddr和araddr统一是字节地址模块会根据
**读取&错误校验**:写完整个 DDR1 后,该工程会一轮一轮地反复读取整个 DDR1若读出的数据不符合上述规律就认为出现错误在错误信号error上产生一个高电平脉冲并把错误计数信号error_cnt+1。如果 DDR1 配置正确,是不该出现 error 信号的。你可以测量 error_cnt 对应的引脚若为0全低电平说明不存在错误。
**SignalTap抓波形**:该工程包含一个 SignalTap 文件([stp1.stp]()),在程序运行时,可以用它查看 DDR1 接口上的波形。它以 error=1 为触发信号,因此如果读写自测没有出错,它就不会被触发。因为该工程随时都在读取 DDR1要想看 DDR1 接口上的波形,直接按“停止”按钮即可。
**SignalTap抓波形**:该工程包含一个 SignalTap 文件([stp1.stp](https://github.com/WangXuan95/FPGA-DDR-SDRAM/blob/main/example-selftest/SignalTap)),在程序运行时,可以用它查看 DDR1 接口上的波形。它以 error=1 为触发信号,因此如果读写自测没有出错,它就不会被触发。因为该工程随时都在读取 DDR1要想看 DDR1 接口上的波形,直接按“停止”按钮即可。
**修改 AXI4 突发长度**:在 [top.sv](https://github.com/WangXuan95/FPGA-DDR-SDRAM/blob/main/example-selftest/RTL/top.sv) 的第 8283 行可以修改 WBURST_LEN 和 RBURST_LEN从而修改自测时的写/读突发长度,该自测程序只支持 2^n-1 这种突发长度,即 WBURST_LEN 和 RBURST_LEN 必须取形如 0,1,3,7,15,31,…… 的值注意这只是我编写的自测程序的限制DDR1 控制器是支持 0~255 之间的任意突发长度的。