1
0
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:
Andreas Olofsson 2015-11-02 20:51:35 -05:00
parent 02b22a36f3
commit 971b591454
5 changed files with 19 additions and 13 deletions

View File

@ -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;

View File

@ -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,

View File

@ -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

View File

@ -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:

View File

@ -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