最早的时候发现读取bram的addr必须+4而不是+1。主要就在是否勾选“Byte Write Enable”,即是否按字节来操作。
在BRAM Controller模式下,默认勾选,PortA和PortB都是32bit位宽的,按照字节就是4个byte,所以会有we[3:0]共4个we信号。
在Stand Alone模式下,默认是不勾选的;如果选择了“Generate address interface with 32 bits”,这个enable就再次被默认勾选。
Byte-Writes
按照bytes操作数据,比如32bit位宽,是4个byte,对应4个we信号。比如使能we[3:0]=4'b0010,那么只有第二byte会被写入数据,其他位不变。
Optional Output Registers
这种output reg的作用就是改善输出路线上的delay和latency。
primitive output register:原语之后的reg就是用ram做的,所以默认就有配置。
core output register:需要单独勾选。
如果都没选,在原语上也会有