mirror of
https://github.com/aolofsson/oh.git
synced 2025-01-30 02:32:53 +08:00
Shifting first byte of packet down by one bit to accomodate new format
- this of for future proofing
This commit is contained in:
parent
02b22a36f3
commit
971b591454
@ -79,9 +79,9 @@ module erx_arbiter (/*AUTOARG*/
|
|||||||
assign ecfg_wait = erx_rr_access;
|
assign ecfg_wait = erx_rr_access;
|
||||||
|
|
||||||
//####################################
|
//####################################
|
||||||
//Write Path (direct)
|
//Write Path (through MMU)
|
||||||
//####################################
|
//####################################
|
||||||
assign emmu_write = emmu_packet[1];
|
assign emmu_write = emmu_packet[0];
|
||||||
|
|
||||||
assign rxwr_access = emmu_access & emmu_write;
|
assign rxwr_access = emmu_access & emmu_write;
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
This block receives the IO transaction and converts to a 104 bit packet.
|
This block receives the IO transaction and converts to a 104 bit packet.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
`include "elink_constants.v"
|
|
||||||
module erx_io (/*AUTOARG*/
|
module erx_io (/*AUTOARG*/
|
||||||
// Outputs
|
// Outputs
|
||||||
rx_clkin, rxo_wr_wait_p, rxo_wr_wait_n, rxo_rd_wait_p,
|
rx_clkin, rxo_wr_wait_p, rxo_wr_wait_n, rxo_rd_wait_p,
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
read responses
|
read responses
|
||||||
*/
|
*/
|
||||||
`include "elink_regmap.v"
|
`include "elink_regmap.v"
|
||||||
|
|
||||||
module erx_protocol (/*AUTOARG*/
|
module erx_protocol (/*AUTOARG*/
|
||||||
// Outputs
|
// Outputs
|
||||||
erx_test_access, erx_test_data, erx_rdwr_access, erx_rr_access,
|
erx_test_access, erx_test_data, erx_rdwr_access, erx_rr_access,
|
||||||
@ -16,7 +17,6 @@ module erx_protocol (/*AUTOARG*/
|
|||||||
parameter PW = 104;
|
parameter PW = 104;
|
||||||
parameter ID = 12'h800; //link id
|
parameter ID = 12'h800; //link id
|
||||||
|
|
||||||
|
|
||||||
// System reset input
|
// System reset input
|
||||||
input clk;
|
input clk;
|
||||||
|
|
||||||
@ -69,6 +69,7 @@ module erx_protocol (/*AUTOARG*/
|
|||||||
|
|
||||||
|
|
||||||
//Pipeline stage and decode
|
//Pipeline stage and decode
|
||||||
|
|
||||||
always @ (posedge clk)
|
always @ (posedge clk)
|
||||||
begin
|
begin
|
||||||
//Write/read request
|
//Write/read request
|
||||||
@ -80,8 +81,8 @@ module erx_protocol (/*AUTOARG*/
|
|||||||
//Common packet
|
//Common packet
|
||||||
erx_packet[PW-1:0] <= {rx_packet[PW-1:40],
|
erx_packet[PW-1:0] <= {rx_packet[PW-1:40],
|
||||||
dstaddr_mux[31:0],
|
dstaddr_mux[31:0],
|
||||||
rx_packet[7:0]
|
{1'b0,rx_packet[7:1]} //NOTE: remvoing redundant access packet bit
|
||||||
};
|
}; //This is to conform to new format
|
||||||
end
|
end
|
||||||
|
|
||||||
//Testdata to write
|
//Testdata to write
|
||||||
|
@ -81,19 +81,18 @@ module etx_arbiter (/*AUTOARG*/
|
|||||||
wire write_in;
|
wire write_in;
|
||||||
|
|
||||||
//##########################################################################
|
//##########################################################################
|
||||||
//# Insert special control mode
|
//# Insert special control mode in packet
|
||||||
//##########################################################################
|
//##########################################################################
|
||||||
assign txrd_ctrlmode[3:0] = ctrlmode_bypass ? ctrlmode[3:0] :
|
assign txrd_ctrlmode[3:0] = ctrlmode_bypass ? ctrlmode[3:0] :
|
||||||
txrd_packet[7:4];
|
txrd_packet[6:3];
|
||||||
|
|
||||||
|
assign txwr_ctrlmode[3:0] = ctrlmode_bypass ? ctrlmode[3:0] :
|
||||||
|
txwr_packet[6:3];
|
||||||
|
|
||||||
assign txrd_data[PW-1:0] = {txrd_packet[PW-1:8],
|
assign txrd_data[PW-1:0] = {txrd_packet[PW-1:8],
|
||||||
txrd_ctrlmode[3:0],
|
txrd_ctrlmode[3:0],
|
||||||
txrd_packet[3:0]};
|
txrd_packet[3:0]};
|
||||||
|
|
||||||
|
|
||||||
assign txwr_ctrlmode[3:0] = ctrlmode_bypass ? ctrlmode[3:0] :
|
|
||||||
txwr_packet[7:4];
|
|
||||||
|
|
||||||
assign txwr_data[PW-1:0] = {txwr_packet[PW-1:8],
|
assign txwr_data[PW-1:0] = {txwr_packet[PW-1:8],
|
||||||
txwr_ctrlmode[3:0],
|
txwr_ctrlmode[3:0],
|
||||||
txwr_packet[3:0]};
|
txwr_packet[3:0]};
|
||||||
@ -169,7 +168,7 @@ module etx_arbiter (/*AUTOARG*/
|
|||||||
|
|
||||||
endmodule // etx_arbiter
|
endmodule // etx_arbiter
|
||||||
// Local Variables:
|
// Local Variables:
|
||||||
// verilog-library-directories:("." "../../common/hdl")
|
// verilog-library-directories:("." "../../emesh/hdl")
|
||||||
// End:
|
// End:
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,6 +128,13 @@ always @ (posedge tx_lclk)
|
|||||||
.srcaddr_out (srcaddr[31:0]),
|
.srcaddr_out (srcaddr[31:0]),
|
||||||
.packet_in (tx_packet_reg[PW-1:0]));
|
.packet_in (tx_packet_reg[PW-1:0]));
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following format is used by the Epiphany multicore ASIC.
|
||||||
|
* Don't change it if you want to communicate with Epiphany.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
always @ (posedge tx_lclk)
|
always @ (posedge tx_lclk)
|
||||||
if (tx_new_frame)
|
if (tx_new_frame)
|
||||||
tx_double[63:0] <= {16'b0,//16
|
tx_double[63:0] <= {16'b0,//16
|
||||||
|
Loading…
x
Reference in New Issue
Block a user