Commit 19792d9e authored by kblantos's avatar kblantos

Changing the header data that we write to RMQ

parent aee3f6af
......@@ -238,15 +238,15 @@ module main;
int idx = 0;
int k = 0;
// // Write SPI mosi data task. Used to generate MOSI data
// task write_spi(input logic [31:0] mosi_spi_data, input int data_length);
// int i;
// for (i=data_length;i>0;i--)
// begin
// @(posedge spi_clk);
// spi_mosi = mosi_spi_data[i-1];
// end
// endtask
// Write SPI mosi data task. Used to generate MOSI data
task write_spi(input logic [31:0] mosi_spi_data, input int data_length);
int i;
for (i=data_length;i>0;i--)
begin
@(posedge spi_clk);
spi_mosi = mosi_spi_data[i-1];
end
endtask
// Generate the frame that will be written in the RMQ
task write_to_rmq();
......@@ -265,12 +265,52 @@ module main;
for (j=3+data_len;j>0;j--)
begin
mosi_data = $urandom_range(1,2048);
write_spi(spi_clk, mosi_data, 32, spi_mosi);
write_spi(mosi_data, 32);
end
@(posedge spi_clk); //KB: added in order to catch it in the queue
spi_mosi = 'b0;
endtask // write_to_rmq
// Generate the frame that will be written in a specific RMQ
task write_to_specific_rmq();
logic [31:0] header_data;
logic [15:0] rt_app_id, len, sync_id;
logic [7:0] flags, msg_id;
logic [31:0] seq;
operation = 8'h00;
wr_rmq_id = $urandom_range(0,6);
data_len = $urandom_range(1,16);
basic_info = {operation, wr_rmq_id, data_len, 8'h00}; // < wr/rd | rmq_id | len | unused >
rd_rmq_id.push_back(wr_rmq_id);
q_data_len.push_back(data_len);
// First send the Basic Info
write_spi(basic_info, 32);
// First we send the 3 header data
rt_app_id = 16'hA;
len
sync_id
header_data = {rt_app_id, 8'h8, 8'h9};
write_spi(header_data,32);
header_data = {8'h0, data_len, 16'h12};
write_spi(header_data,32);
header_data = 32'hAABBCCDD;
write_spi(header_data, 32);
// Then send the 3 header words and payload
for (int j=data_len;j>0;j--) //it was j=3+data_len
begin
mosi_data = $urandom_range(1,2048);
write_spi(mosi_data, 32);
end
@(posedge spi_clk); //KB: added in order to catch it in the queue
spi_mosi = 'b0;
endtask // write_to_specific_rmq
task write_shorter_to_rmq();
int j;
operation = 8'h00;
......@@ -502,7 +542,7 @@ module main;
end
*/
/*
$display("************ 4x Write and 4x Read ************");
$display("************ TEST CASE 2 ************\n");
......@@ -529,7 +569,7 @@ module main;
q_miso_data.delete();
#100us;
end
*/
/*
$display("************ Write to all and Read all ************");
$display("************ TEST CASE 3 ************\n");
......@@ -643,6 +683,61 @@ module main;
// assert (q_mosi_data == q_miso_data)
// else $error("Mismatch between two queues, MOSI %p and MISO %p", q_mosi_data, q_miso_data);
$display("************ RMQ 0 ************");
$display("************ 3x Write and 4x Read ************");
$display("************ 2x Write and 3x Read ************");
$display("************ TEST CASE 5 ************\n");
for (int i=0;i<3;i++)
begin
$display("**** Start writing the %d frame ****\n",i+1);
spi_cs_n = 'b0;
write_to_specific_rmq();
spi_cs_n = 'b1;
#500us;
$displayh("FRAME WRITTEN IN RMQ (%d) : %p\n", DUT.cmp_mt_profip_translator.s_rmq_id, q_mosi_data);
q_mosi_data.delete();
end
for (int i=0;i<4;i++)
begin
$display("q_data_len = %p", q_data_len);
$display("**** Start reading the %d frame ****\n",i+1);
idx = rd_rmq_id[i];
spi_cs_n = 'b0;
read_from_rmq(idx);
spi_cs_n = 'b1;
$displayh("FRAME READ FROM RMQ (%d) : %p", idx, q_miso_data);
q_miso_data.delete();
#100us;
end
for (int i=0;i<2;i++)
begin
$display("**** Start writing the %d frame ****\n",i+1);
spi_cs_n = 'b0;
write_to_specific_rmq();
spi_cs_n = 'b1;
#500us;
$displayh("FRAME WRITTEN IN RMQ (%d) : %p\n", DUT.cmp_mt_profip_translator.s_rmq_id, q_mosi_data);
q_mosi_data.delete();
end
for (int i=0;i<3;i++)
begin
$display("q_data_len = %p", q_data_len);
$display("**** Start reading the %d frame ****\n",i+1);
idx = rd_rmq_id[i];
spi_cs_n = 'b0;
read_from_rmq(idx);
spi_cs_n = 'b1;
$displayh("FRAME READ FROM RMQ (%d) : %p", idx, q_miso_data);
q_miso_data.delete();
#100us;
end
q_mosi_data.delete();
q_miso_data.delete();
q_mosi_payload.delete();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment