URL
https://opencores.org/ocsvn/spacewiresystemc/spacewiresystemc/trunk
Subversion Repositories spacewiresystemc
Compare Revisions
- This comparison shows the changes necessary to convert path
/spacewiresystemc
- from Rev 12 to Rev 13
- ↔ Reverse comparison
Rev 12 → Rev 13
/trunk/rtl/RTL_VB/tx_spw.v
54,7 → 54,7
output reg tx_sout, |
// |
output reg ready_tx_data, |
output ready_tx_timecode |
output reg ready_tx_timecode |
|
); |
|
108,9 → 108,10
|
reg [3:0] global_counter_transfer; |
|
assign ready_tx_timecode = (enable_time_code & global_counter_transfer == 14)?1'b1:1'b0; |
/* |
assign ready_tx_timecode = (enable_time_code & global_counter_transfer == 13)?1'b1:1'b0; |
|
/* |
|
assign ready_tx_data = (enable_n_char & global_counter_transfer == 4'd9 & !data_tx_i[8])?1'b1: |
(enable_n_char & global_counter_transfer == 4'd3 & data_tx_i[8])?1'b1:1'b0; |
*/ |
261,35 → 262,35
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd6) |
begin |
tx_dout = timecode_s[7]; |
tx_dout = timecode_s[0]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd7) |
begin |
tx_dout = timecode_s[6]; |
tx_dout = timecode_s[1]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd8) |
begin |
tx_dout = timecode_s[5]; |
tx_dout = timecode_s[2]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd9) |
begin |
tx_dout = timecode_s[4]; |
tx_dout = timecode_s[3]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd10) |
begin |
tx_dout = timecode_s[3]; |
tx_dout = timecode_s[4]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd11) |
begin |
tx_dout = timecode_s[2]; |
tx_dout = timecode_s[5]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd12) |
begin |
tx_dout = timecode_s[1]; |
tx_dout = timecode_s[6]; |
end |
else if( enable_time_code & !first_time & global_counter_transfer == 4'd13) |
begin |
tx_dout = timecode_s[0]; |
tx_dout = timecode_s[7]; |
end |
else if( enable_n_char & !data_tx_i[8] & !first_time & last_type == NULL & global_counter_transfer == 4'd0) |
begin |
434,11 → 435,11
begin |
tx_sout = 1'b0; |
end |
else if((enable_null | enable_fct | enable_n_char) && tx_dout == last_tx_dout) |
else if((enable_null | enable_fct | enable_n_char | enable_time_code) && tx_dout == last_tx_dout) |
begin |
tx_sout = !last_tx_sout; |
end |
else if((enable_null | enable_fct | enable_n_char) && tx_dout != last_tx_dout) |
else if((enable_null | enable_fct | enable_n_char | enable_time_code) && tx_dout != last_tx_dout) |
begin |
tx_sout = last_tx_sout; |
end |
588,17 → 589,18
begin |
if(!enable_tx) |
begin |
null_s <= 8'h74; |
fct_s <= 4'h4; |
eop_s <= 4'h5; |
eep_s <= 4'h6; |
timecode_s <= 14'h1e00; |
null_s <= 8'h74; |
fct_s <= 4'h4; |
eop_s <= 4'h5; |
eep_s <= 4'h6; |
timecode_s <= 14'b01110000000000; |
|
fct_flag <= 3'd0; |
fct_flag <= 3'd0; |
fct_send_last <= 3'd0; |
|
first_time <= 1'b1; |
ready_tx_data <= 1'b0; |
first_time <= 1'b1; |
ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
|
hold_null <= 1'b0; |
hold_fct <= 1'b0; |
629,6 → 631,7
begin |
|
ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
|
// |
if(fct_send_last != fct_send) |
681,6 → 684,7
begin |
|
ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
|
// |
if(fct_counter_last != fct_counter) |
714,6 → 718,11
|
ready_tx_data <= 1'b0; |
|
if(global_counter_transfer == 4'd13) |
begin |
ready_tx_timecode <= 1'b1; |
end |
|
// |
if(fct_counter_last != fct_counter) |
begin |
747,10 → 756,11
if(global_counter_transfer < 4'd13) |
begin |
global_counter_transfer <= global_counter_transfer + 4'd1; |
last_timein_control_flag_tx <= timecode_tx_i; |
timecode_s <= {timecode_s[13:10],2'd2,timecode_tx_i[7:0]}; |
end |
else |
begin |
last_timein_control_flag_tx <= timecode_tx_i; |
global_counter_transfer <= 4'd0; |
end |
end |
757,6 → 767,8
else if(enable_n_char) |
begin |
|
ready_tx_timecode <= 1'b0; |
|
// |
if(fct_send_last != fct_send) |
begin |
/trunk/vpi/vpi_test_stress/env_global_spw.cpp
30,6 → 30,7
s_vpi_value sin_value; |
s_vpi_value fsm_value; |
s_vpi_value value_to_tx; |
s_vpi_value value_to_tx_timec; |
s_vpi_value value_to_rx; |
|
s_vpi_value value_to_fsm; |
47,6 → 48,8
#define WAIT_500_CYCLES 1 |
|
unsigned int state_test=0; |
unsigned int state_test_tx_timec=0; |
unsigned int timecode=0; |
|
unsigned int state_test_rx=0; |
|
/trunk/vpi/vpi_test_stress/global_init.h
24,6 → 24,7
position = 0; |
counter_null = 0; |
state_test_rx=0; |
state_test_tx_timec=0; |
|
lib_handle = dlopen("./final_spw.so", RTLD_LAZY); |
|
/trunk/vpi/vpi_test_stress/write_tx_time_code_spw_ultra_light.h
1,7 → 1,72
static int write_tx_time_code_spw_ultra_light_calltf(char*user_data) |
{ |
vpiHandle TX_DATA = vpi_handle_by_name("module_tb.TOP_TX_DATA",NULL); |
vpiHandle TX_WRITE = vpi_handle_by_name("module_tb.TOP_TX_WRITE",NULL); |
vpiHandle TX_TIMEC = vpi_handle_by_name("module_tb.TOP_TX_TIME",NULL); |
vpiHandle TX_TICKE = vpi_handle_by_name("module_tb.TOP_TX_TICK",NULL); |
vpiHandle TX_TICKREADY = vpi_handle_by_name("module_tb.TOP_TX_READY_TICK",NULL); |
|
value_to_tx_timec.format = vpiIntVal; |
|
if(SC_TOP->reset_set()) |
{ |
|
if(SC_TOP->enable_time_code_tx_test()) |
{ |
switch(state_test_tx_timec) |
{ |
case SEND_DATA: |
|
value_to_tx_timec.value.integer = 0; |
vpi_put_value(TX_TICKE, &value_to_tx_timec, NULL, vpiNoDelay); |
state_test_tx_timec = 59; |
break; |
case 59: |
|
value_to_tx_timec.value.integer = timecode; |
vpi_put_value(TX_TIMEC, &value_to_tx_timec, NULL, vpiNoDelay); |
|
vpi_get_value(TX_TICKREADY, &value_to_tx_timec); |
|
if(value_to_tx_timec.value.integer == 0) |
{ |
value_to_tx_timec.value.integer = 1; |
vpi_put_value(TX_TICKE , &value_to_tx_timec, NULL, vpiNoDelay); |
state_test_tx_timec = WAIT_DATA; |
} |
|
break; |
case WAIT_DATA: |
|
vpi_get_value(TX_TICKREADY, &value_to_tx_timec); |
|
if(value_to_tx_timec.value.integer == 1) |
{ |
state_test_tx_timec = 60; |
|
value_to_tx_timec.value.integer = 0; |
vpi_put_value(TX_TICKE, &value_to_tx_timec, NULL, vpiNoDelay); |
|
//if(position > SC_TOP->size_data_test()) |
//{ |
// value_to_tx.value.integer = 0; |
// vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay); |
// state_test = 60; |
//} |
} |
else |
{ |
} |
break; |
case 60: |
state_test_tx_timec = SEND_DATA; |
timecode = timecode + 1; |
break; |
} |
} |
else |
{ |
state_test_tx_timec = SEND_DATA; |
} |
} |
|
return 0; |
} |
/trunk/work/SpaceWrireTestSuit.glade
Cannot display: file marked as a binary type.
svn:mime-type = application/xml
/trunk/work/final_spw.so
Cannot display: file marked as a binary type.
svn:mime-type = application/x-sharedlib