增加代码,1.仿真了最多202个从站,功能正常;2.测试了读写\广播等操作
This commit is contained in:
@@ -557,7 +557,7 @@ end
|
||||
reg isBusy = 0;
|
||||
|
||||
reg [11:0] length;
|
||||
reg [7:0] idx;
|
||||
reg [16:0] idx;
|
||||
|
||||
reg [11:0] transCnt;
|
||||
reg [11:0] byteCnt;
|
||||
@@ -630,7 +630,7 @@ end
|
||||
|
||||
//mst slv0~slv3的 内部qspi调用即设置
|
||||
//sidx为0~4;外部spi为5~9,外部qspi为10~15
|
||||
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,input [7:0] sidx );
|
||||
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,input [16:0] sidx );
|
||||
begin
|
||||
txBuf[0] <= saddress[15:8];
|
||||
txBuf[1] <= saddress[7:0];
|
||||
@@ -692,13 +692,15 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
||||
|
||||
if (scmd == 0) begin
|
||||
addr_type = txBuf[_pos + 1] & 8'h3;
|
||||
dev = (txBuf[_pos] >> 2) * 256 + ((txBuf[_pos + 1] >> 2) & 8'hff);
|
||||
dev = (txBuf[_pos] * 256) >> 2;
|
||||
dev = dev + ((txBuf[_pos + 1] >> 2) & 8'hff);
|
||||
addr = txBuf[_pos + 2] * 256 + (txBuf[_pos + 3] & 8'hff);
|
||||
cmd = (txBuf[_pos + 4] >> 4) & 8'h0f;
|
||||
len = (txBuf[_pos + 4] & 8'h0f) * 256 + (txBuf[_pos + 5] & 8'hff);
|
||||
end else begin
|
||||
addr_type = rxBuf[_pos + 1] & 8'h3;
|
||||
dev = (rxBuf[_pos] >> 2) * 256 + ((rxBuf[_pos + 1] >> 2) & 8'hff);
|
||||
dev = (txBuf[_pos] * 256) >> 2;
|
||||
dev = dev + ((txBuf[_pos + 1] >> 2) & 8'hff);
|
||||
addr = rxBuf[_pos + 2] * 256 + (rxBuf[_pos + 3] & 8'hff);
|
||||
cmd = (rxBuf[_pos + 4] >> 4) & 8'h0f;
|
||||
len = (rxBuf[_pos + 4] & 8'h0f) * 256 + (rxBuf[_pos + 5] & 8'hff);
|
||||
|
||||
Reference in New Issue
Block a user