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 35 to Rev 36
- ↔ Reverse comparison
Rev 35 → Rev 36
/trunk/rtl/RTL_VB/fifo_rx.v
144,13 → 144,11
block_write <= 1'b0; |
wr_ptr <= wr_ptr + 6'd1; |
end |
//mem[wr_ptr-6'd1]<=data_in; |
end |
else if (wr_en && !f_full) |
begin |
block_write <= 1'b1; |
mem[wr_ptr]<=data_in; |
|
end |
|
if(wr_en && credit_counter > 6'd55) |
177,7 → 175,7
|
if((wr_en && !f_full && !block_write) && (rd_en && !f_empty && !block_read)) |
begin |
if(rd_ptr == 6'd8 || rd_ptr == 6'd16 || rd_ptr == 6'd24 || rd_ptr == 6'd32 || rd_ptr == 6'd40 || rd_ptr == 6'd48 || rd_ptr == 6'd56 || rd_ptr == 6'd63) |
if(rd_ptr == 6'd7 || rd_ptr == 6'd15 || rd_ptr == 6'd23 || rd_ptr == 6'd31 || rd_ptr == 6'd39 || rd_ptr == 6'd47 || rd_ptr == 6'd55 || rd_ptr == 6'd63) |
credit_counter <= credit_counter - 6'd1 + 6'd8; |
else |
credit_counter <= credit_counter - 6'd1; |
188,7 → 186,7
end |
else if(rd_en && !f_empty && !block_read) |
begin |
if(rd_ptr == 6'd8 || rd_ptr == 6'd16 || rd_ptr == 6'd24 || rd_ptr == 6'd32 || rd_ptr == 6'd40 || rd_ptr == 6'd48 || rd_ptr == 6'd56 || rd_ptr == 6'd63) |
if(rd_ptr == 6'd7 || rd_ptr == 6'd15 || rd_ptr == 6'd23 || rd_ptr == 6'd31 || rd_ptr == 6'd39 || rd_ptr == 6'd47 || rd_ptr == 6'd55 || rd_ptr == 6'd63) |
begin |
credit_counter <= credit_counter + 6'd8; |
end |
246,7 → 244,7
else |
begin |
|
if(rd_ptr == 6'd8 || rd_ptr == 6'd16 || rd_ptr == 6'd24 || rd_ptr == 6'd32 || rd_ptr == 6'd40 || rd_ptr == 6'd48 || rd_ptr == 6'd56 || rd_ptr == 6'd63) |
if(rd_ptr == 6'd7 || rd_ptr == 6'd15 || rd_ptr == 6'd23 || rd_ptr == 6'd31 || rd_ptr == 6'd39 || rd_ptr == 6'd47 || rd_ptr == 6'd55 || rd_ptr == 6'd63) |
begin |
open_slot_fct<= 1'b1; |
end |
274,8 → 272,4
end |
end |
|
//assign f_empty = ((wr_ptr - rd_ptr) == 6'd0)?1'b1:1'b0; |
//assign wr = (wr_en && !f_full)?wr_ptr + 6'd1:wr_ptr + 6'd0; |
//assign rd = (rd_en && !f_empty)?rd_ptr+ 6'd1:rd_ptr + 6'd0; |
|
endmodule |
/trunk/rtl/RTL_VB/fifo_tx.v
52,7 → 52,6
reg block_read; |
reg block_write; |
|
|
//Write pointer |
always@(posedge clock or negedge reset) |
begin |
225,8 → 224,7
else if(rd_en && !f_empty) |
begin |
block_read<= 1'b1; |
rd_ptr <= rd_ptr+ 6'd1; |
|
rd_ptr <= rd_ptr+ 6'd1; |
end |
|
data_out <= mem[rd_ptr]; |
245,8 → 243,4
end |
end |
|
//assign f_empty = ((wr_ptr - rd_ptr) == 6'd0)?1'b1:1'b0; |
//assign wr = (wr_en && !f_full)?wr_ptr + 6'd1:wr_ptr + 6'd0; |
//assign rd = (rd_en && !f_empty)?rd_ptr+ 6'd1:rd_ptr + 6'd0; |
|
endmodule |
/trunk/rtl/RTL_VB/tx_spw.v
82,18 → 82,16
reg [2:0] state_tx; |
reg [2:0] next_state_tx; |
|
//reg [7:0] null_s; |
//reg [2:0] fct_s; |
//reg [3:0] eop_s; |
//reg [3:0] eep_s; |
reg [13:0] timecode_s; |
|
reg [5:0] last_type; |
reg [8:0] txdata_flagctrl_tx_last; |
reg [8:0] tx_data_in; |
reg data_rdy_trnsp; |
reg [7:0] last_timein_control_flag_tx; |
reg [7:0] tx_tcode_in; |
reg tcode_rdy_trnsp; |
|
reg first_time; |
|
reg hold_null; |
reg hold_fct; |
reg hold_data; |
128,16 → 126,12
|
always@(*) |
begin |
tx_dout_null = 1'b0; |
tx_dout_null = last_tx_dout; |
|
if(enable_null) |
begin |
if(first_time && global_counter_transfer[3:0] == 4'd0) |
if(last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_null = null_s[7]; |
end |
else if(last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_null = !(null_s[6]^null_s[0]^null_s[1]); |
end |
else if(last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
195,7 → 189,7
always@(*) |
begin |
|
tx_dout_fct = 1'b0; |
tx_dout_fct = last_tx_dout; |
|
if(enable_fct) |
begin |
242,7 → 236,7
|
always@(*) |
begin |
tx_dout_timecode = 1'b0; |
tx_dout_timecode = last_tx_dout; |
|
if(enable_time_code) |
begin |
327,139 → 321,139
|
always@(*) |
begin |
tx_dout_data = 1'b0; |
tx_dout_data = last_tx_dout; |
|
if(enable_n_char) |
begin |
if(!data_tx_i[8] && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
if(!tx_data_in[8] && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^null_s[0]^null_s[1]); |
tx_dout_data = !(tx_data_in[8]^null_s[0]^null_s[1]); |
end |
else if(!data_tx_i[8] && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
else if(!tx_data_in[8] && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^fct_s[0]^fct_s[1]); |
tx_dout_data = !(tx_data_in[8]^fct_s[0]^fct_s[1]); |
end |
else if(!data_tx_i[8] && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
else if(!tx_data_in[8] && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^eop_s[0]^eop_s[1]); |
tx_dout_data = !(tx_data_in[8]^eop_s[0]^eop_s[1]); |
end |
else if(!data_tx_i[8] && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
else if(!tx_data_in[8] && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^eep_s[0]^eep_s[1]); |
tx_dout_data = !(tx_data_in[8]^eep_s[0]^eep_s[1]); |
end |
else if(!data_tx_i[8] && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
else if(!tx_data_in[8] && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^txdata_flagctrl_tx_last[0]^txdata_flagctrl_tx_last[1]^txdata_flagctrl_tx_last[2]^txdata_flagctrl_tx_last[3]^ txdata_flagctrl_tx_last[4]^txdata_flagctrl_tx_last[5]^txdata_flagctrl_tx_last[6]^txdata_flagctrl_tx_last[7]); |
tx_dout_data = !(tx_data_in[8]^txdata_flagctrl_tx_last[0]^txdata_flagctrl_tx_last[1]^txdata_flagctrl_tx_last[2]^txdata_flagctrl_tx_last[3]^ txdata_flagctrl_tx_last[4]^txdata_flagctrl_tx_last[5]^txdata_flagctrl_tx_last[6]^txdata_flagctrl_tx_last[7]); |
end |
else if(!data_tx_i[8] && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
else if(!tx_data_in[8] && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(data_tx_i[8]^last_timein_control_flag_tx[7]^last_timein_control_flag_tx[6]^last_timein_control_flag_tx[5]^last_timein_control_flag_tx[4]^last_timein_control_flag_tx[3]^last_timein_control_flag_tx[2]^last_timein_control_flag_tx[1]^last_timein_control_flag_tx[0]); |
tx_dout_data = !(tx_data_in[8]^last_timein_control_flag_tx[7]^last_timein_control_flag_tx[6]^last_timein_control_flag_tx[5]^last_timein_control_flag_tx[4]^last_timein_control_flag_tx[3]^last_timein_control_flag_tx[2]^last_timein_control_flag_tx[1]^last_timein_control_flag_tx[0]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^null_s[0]^null_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^fct_s[0]^fct_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^eop_s[0]^eop_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^eep_s[0]^eep_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^txdata_flagctrl_tx_last[0]^txdata_flagctrl_tx_last[1]^txdata_flagctrl_tx_last[2]^txdata_flagctrl_tx_last[3]^ txdata_flagctrl_tx_last[4]^txdata_flagctrl_tx_last[5]^txdata_flagctrl_tx_last[6]^txdata_flagctrl_tx_last[7]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eop_s[2]^last_timein_control_flag_tx[7]^last_timein_control_flag_tx[6]^last_timein_control_flag_tx[5]^last_timein_control_flag_tx[4]^last_timein_control_flag_tx[3]^last_timein_control_flag_tx[2]^last_timein_control_flag_tx[1]^last_timein_control_flag_tx[0]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == NULL && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^null_s[0]^null_s[1]); |
end |
else if(data_tx_i[8] & data_tx_i[1:0] == 2'b01 && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == FCT && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^fct_s[0]^fct_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == EOP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^eop_s[0]^eop_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == EEP && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^eep_s[0]^eep_s[1]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == DATA && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^txdata_flagctrl_tx_last[0]^txdata_flagctrl_tx_last[1]^txdata_flagctrl_tx_last[2]^txdata_flagctrl_tx_last[3]^ txdata_flagctrl_tx_last[4]^txdata_flagctrl_tx_last[5]^txdata_flagctrl_tx_last[6]^txdata_flagctrl_tx_last[7]); |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && last_type == TIMEC && global_counter_transfer[3:0] == 4'd0) |
begin |
tx_dout_data = !(eep_s[2]^last_timein_control_flag_tx[7]^last_timein_control_flag_tx[6]^last_timein_control_flag_tx[5]^last_timein_control_flag_tx[4]^last_timein_control_flag_tx[3]^last_timein_control_flag_tx[2]^last_timein_control_flag_tx[1]^last_timein_control_flag_tx[0]); |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd1) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd1) |
begin |
tx_dout_data = data_tx_i[8]; |
tx_dout_data = tx_data_in[8]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd2) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd2) |
begin |
tx_dout_data = data_tx_i[0]; |
tx_dout_data = tx_data_in[0]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd3) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd3) |
begin |
tx_dout_data = data_tx_i[1]; |
tx_dout_data = tx_data_in[1]; |
end |
else if( !data_tx_i[8] && global_counter_transfer[3:0] == 4'd4) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd4) |
begin |
tx_dout_data = data_tx_i[2]; |
tx_dout_data = tx_data_in[2]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd5) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd5) |
begin |
tx_dout_data = data_tx_i[3]; |
tx_dout_data = tx_data_in[3]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd6) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd6) |
begin |
tx_dout_data = data_tx_i[4]; |
tx_dout_data = tx_data_in[4]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd7) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd7) |
begin |
tx_dout_data = data_tx_i[5]; |
tx_dout_data = tx_data_in[5]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd8) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd8) |
begin |
tx_dout_data = data_tx_i[6]; |
tx_dout_data = tx_data_in[6]; |
end |
else if(!data_tx_i[8] && global_counter_transfer[3:0] == 4'd9) |
else if(!tx_data_in[8] && global_counter_transfer[3:0] == 4'd9) |
begin |
tx_dout_data = data_tx_i[7]; |
tx_dout_data = tx_data_in[7]; |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd1) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd1) |
begin |
tx_dout_data = eep_s[2]; |
end |
else if( data_tx_i[8] && data_tx_i[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd2) |
else if( tx_data_in[8] && tx_data_in[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd2) |
begin |
tx_dout_data = eep_s[1]; |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd3) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b01 && global_counter_transfer[3:0] == 4'd3) |
begin |
tx_dout_data = eep_s[0]; |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd1) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd1) |
begin |
tx_dout_data = eop_s[2]; |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd2) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd2) |
begin |
tx_dout_data = eop_s[1]; |
end |
else if(data_tx_i[8] && data_tx_i[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd3) |
else if(tx_data_in[8] && tx_data_in[1:0] == 2'b00 && global_counter_transfer[3:0] == 4'd3) |
begin |
tx_dout_data = eop_s[0]; |
end |
469,14 → 463,11
//strobe |
always@(*) |
begin |
tx_sout = 1'b0; |
|
if(!enable_tx) |
tx_sout = last_tx_sout; |
|
if((enable_null | enable_fct | enable_n_char | enable_time_code) & tx_dout == last_tx_dout) |
begin |
tx_sout = 1'b0; |
end |
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 | enable_time_code) & tx_dout != last_tx_dout) |
537,15 → 528,37
end |
end |
|
always@(*) |
begin |
|
tx_dout = last_tx_dout; |
|
if(enable_null) |
begin |
tx_dout = tx_dout_null; |
end |
else if(enable_fct) |
begin |
tx_dout = tx_dout_fct; |
end |
else if(enable_time_code) |
begin |
tx_dout = tx_dout_timecode; |
end |
else if(enable_n_char) |
begin |
tx_dout = tx_dout_data; |
end |
end |
|
always@(*) |
begin |
|
|
enable_null = 1'b0; |
enable_fct = 1'b0; |
enable_n_char = 1'b0; |
enable_time_code = 1'b0; |
enable_null = hold_null; |
enable_fct = hold_fct; |
enable_n_char = hold_data; |
enable_time_code = hold_time_code; |
|
next_state_tx = state_tx; |
|
554,10 → 567,7
begin |
if(send_null_tx && enable_tx) |
begin |
//if(!hold_null) |
next_state_tx = tx_spw_null; |
|
//enable_null = 1'b1; |
next_state_tx = tx_spw_null; |
end |
else |
begin |
593,8 → 603,7
enable_fct = 1'b0; |
if(send_fct_tx && fct_counter_receive > 6'd0) |
begin |
//if(global_counter_transfer == 4'd7) |
next_state_tx = tx_spw_full; |
next_state_tx = tx_spw_full; |
end |
|
end |
601,7 → 610,7
end |
tx_spw_full: |
begin |
if(tickin_tx && !hold_null && !hold_fct && !hold_data) |
if(tickin_tx && !ready_tx_timecode && tcode_rdy_trnsp &&!hold_null && !hold_fct && !hold_data) |
begin |
enable_time_code = 1'b1; |
end |
609,11 → 618,11
begin |
enable_fct = 1'b1; |
end |
else if((txwrite_tx && !ready_tx_data && fct_counter_receive > 6'd0 && !hold_null && !hold_time_code && !hold_fct) == 1'b1 ) |
else if((txwrite_tx && !ready_tx_data && data_rdy_trnsp && fct_counter_receive > 6'd0 && !hold_null && !hold_time_code && !hold_fct) == 1'b1 ) |
begin |
enable_n_char = 1'b1; |
end |
else |
else |
begin |
enable_null = 1'b1; |
end |
623,71 → 632,15
end |
|
|
always@(*) |
begin |
|
tx_dout = 1'b0; |
|
if(enable_null) |
begin |
tx_dout = tx_dout_null; |
end |
else if(enable_fct) |
begin |
tx_dout = tx_dout_fct; |
end |
else if(enable_time_code) |
begin |
tx_dout = tx_dout_timecode; |
end |
else if(enable_n_char) |
begin |
tx_dout = tx_dout_data; |
end |
end |
|
|
always@(posedge pclk_tx or negedge enable_tx) |
begin |
if(!enable_tx) |
begin |
tx_dout_e <= 1'b0; |
tx_sout_e <= 1'b0; |
end |
else |
begin |
if(enable_null) |
begin |
tx_dout_e <= tx_dout; |
tx_sout_e <= tx_sout; |
end |
else if(enable_fct) |
begin |
tx_dout_e <= tx_dout; |
tx_sout_e <= tx_sout; |
end |
else if(enable_time_code) |
begin |
tx_dout_e <= tx_dout; |
tx_sout_e <= tx_sout; |
end |
else if(enable_n_char) |
begin |
tx_dout_e <= tx_dout; |
tx_sout_e <= tx_sout; |
end |
end |
end |
|
always@(posedge pclk_tx or negedge enable_tx) |
begin |
if(!enable_tx) |
begin |
|
timecode_s <= 14'b01110000000000; |
fct_flag <= 3'd7; |
|
first_time <= 1'b1; |
ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
|
700,6 → 653,7
|
global_counter_transfer <= 4'd0; |
txdata_flagctrl_tx_last <= 9'd0; |
tx_data_in <= 9'd0; |
last_timein_control_flag_tx <= 8'd0; |
|
fct_counter_receive <= 6'd0; |
712,19 → 666,46
|
state_tx <= tx_spw_start; |
|
tx_dout_e <= 1'b0; |
tx_sout_e <= 1'b0; |
|
data_rdy_trnsp <= 1'b0; |
|
tx_tcode_in <= 8'd0; |
tcode_rdy_trnsp <= 1'b0; |
|
end |
else |
begin |
|
state_tx <= next_state_tx; |
|
last_tx_dout <= tx_dout; |
last_tx_sout <= tx_sout; |
|
tx_dout_e <= last_tx_dout; |
tx_sout_e <= last_tx_sout; |
|
if(enable_null) |
begin |
|
//ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
if(txwrite_tx && global_counter_transfer == 4'd5) |
begin |
tx_data_in <= data_tx_i; |
data_rdy_trnsp <= 1'b1; |
end |
else |
tx_data_in <= tx_data_in; |
|
if(tickin_tx && global_counter_transfer == 4'd5) |
begin |
tx_tcode_in <= timecode_tx_i; |
tcode_rdy_trnsp <= 1'b1; |
end |
else |
tx_tcode_in <= tx_tcode_in; |
|
|
//hold_null <= 1'b0; |
hold_fct <= 1'b0; |
hold_data <= 1'b0; |
755,38 → 736,32
else |
block_sum_fct_send <= block_sum_fct_send; |
|
if(global_counter_transfer == 4'd7) |
if(global_counter_transfer == 4'd3) |
begin |
hold_null <= 1'b0; |
ready_tx_timecode <= 1'b0; |
ready_tx_data <= 1'b0; |
end |
else |
begin |
hold_null <= 1'b1; |
ready_tx_timecode <= ready_tx_timecode; |
ready_tx_data <= ready_tx_data; |
end |
|
if(first_time) |
if(global_counter_transfer == 4'd7) |
begin |
first_time <= 1'b0; |
//hold_null <= 1'b1; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
last_type <= NULL; |
hold_null <= 1'b0; |
global_counter_transfer <= 4'd0; |
end |
else if(global_counter_transfer != 4'd7) |
else |
begin |
//hold_null <= 1'b1; |
last_type <= last_type; |
hold_null <= 1'b1; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
end |
else |
begin |
//hold_null <= 1'b0; |
ready_tx_data <= 1'b0; |
last_type <= NULL; |
global_counter_transfer <= 4'd0; |
end |
end |
else if(enable_fct) |
begin |
//ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
|
hold_null <= 1'b0; |
//hold_fct <= 1'b0; |
805,26 → 780,20
end |
else |
block_sum <= block_sum; |
|
ready_tx_data <= ready_tx_data; |
|
if(global_counter_transfer == 4'd2) |
ready_tx_data <= 1'b0; |
else |
ready_tx_data <= ready_tx_data; |
|
if(global_counter_transfer == 4'd3) |
begin |
|
fct_flag <= fct_flag - 3'd1; |
last_type <=FCT; |
global_counter_transfer <= 4'd0; |
hold_fct <= 1'b0; |
end |
else |
begin |
hold_fct <= 1'b1; |
end |
|
if(global_counter_transfer != 4'd3) |
begin |
//hold_fct <= 1'b1; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
// |
if(send_fct_now && !block_sum_fct_send) |
begin |
fct_flag <= fct_send; |
836,25 → 805,27
end |
else |
block_sum_fct_send <= block_sum_fct_send; |
|
hold_fct <= 1'b1; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
end |
else |
begin |
//hold_fct <= 1'b0; |
global_counter_transfer <= 4'd0; |
fct_flag <= fct_flag - 3'd1; |
last_type <=FCT; |
end |
end |
else if(enable_time_code) |
begin |
|
if(txwrite_tx && global_counter_transfer == 4'd6) |
begin |
data_rdy_trnsp <= 1'b1; |
tx_data_in <= data_tx_i; |
end |
else |
tx_data_in <= tx_data_in; |
|
hold_null <= 1'b0; |
hold_fct <= 1'b0; |
hold_data <= 1'b0; |
//hold_time_code <= 1'b0; |
|
//ready_tx_data <= 1'b0; |
|
if(gotfct_tx && !block_sum) |
begin |
fct_counter_receive <= fct_counter; |
869,16 → 840,15
|
if(global_counter_transfer == 4'd13) |
begin |
hold_time_code <= 1'b0; |
ready_tx_timecode <= 1'b1; |
global_counter_transfer <= 4'd0; |
end |
|
if(global_counter_transfer == 4'd13) |
begin |
hold_time_code <= 1'b0; |
end |
else |
begin |
hold_time_code <= 1'b0; |
ready_tx_timecode <= 1'b0; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
end |
|
// |
896,20 → 866,18
|
if(global_counter_transfer != 4'd13) |
begin |
global_counter_transfer <= global_counter_transfer + 4'd1; |
timecode_s <= {timecode_ss[13:10],2'd2,timecode_tx_i[7:0]}; |
|
timecode_s <= {timecode_ss[13:10],2'd2,tx_tcode_in[7:0]}; |
end |
else |
begin |
ready_tx_data <= 1'b0; |
last_timein_control_flag_tx <= timecode_tx_i; |
global_counter_transfer <= 4'd0; |
last_timein_control_flag_tx <= tx_tcode_in; |
last_type <= TIMEC; |
end |
end |
else if(enable_n_char) |
begin |
ready_tx_timecode <= 1'b0; |
hold_null <= 1'b0; |
hold_fct <= 1'b0; |
//hold_data <= 1'b0; |
928,26 → 896,22
else |
block_sum_fct_send <= block_sum_fct_send; |
|
if(!data_tx_i[8]) |
if(!tx_data_in[8]) |
begin |
|
if(global_counter_transfer == 4'd9) |
begin |
|
fct_counter_receive <= fct_counter_receive - 6'd1; |
last_type <= DATA; |
|
hold_data <= 1'b0; |
ready_tx_data <= 1'b1; |
data_rdy_trnsp <= 1'b0; |
global_counter_transfer <= 4'd0; |
end |
else |
begin |
ready_tx_data <= 1'b0; |
hold_data <= 1'b1; |
end |
|
if(global_counter_transfer != 4'd9) |
begin |
|
global_counter_transfer <= global_counter_transfer + 4'd1; |
txdata_flagctrl_tx_last <= data_tx_i; |
|
if(gotfct_tx && !block_sum) |
begin |
fct_counter_receive <= fct_counter; |
959,33 → 923,41
end |
else |
block_sum <= block_sum; |
|
ready_tx_data <= 1'b0; |
hold_data <= 1'b1; |
ready_tx_timecode <= 1'b0; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
end |
else |
begin |
global_counter_transfer <= 4'd0; |
fct_counter_receive <= fct_counter_receive - 6'd1; |
last_type <= DATA; |
end |
|
if(global_counter_transfer == 4'd4) |
txdata_flagctrl_tx_last <= tx_data_in; |
|
|
end |
else if(data_tx_i[8]) |
else if(tx_data_in[8]) |
begin |
|
if(global_counter_transfer == 4'd3) |
begin |
fct_counter_receive <= fct_counter_receive - 6'd1; |
|
if(tx_data_in[1:0] == 2'b00) |
begin |
last_type <=EOP; |
end |
else if(tx_data_in[1:0] == 2'b01) |
begin |
last_type <=EEP; |
end |
|
global_counter_transfer <= 4'd0; |
hold_data <= 1'b0; |
data_rdy_trnsp <= 1'b0; |
ready_tx_data <= 1'b1; |
end |
else |
begin |
hold_data <= 1'b1; |
ready_tx_data <= 1'b0; |
end |
|
if(global_counter_transfer != 4'd3) |
begin |
|
global_counter_transfer <= global_counter_transfer + 4'd1; |
txdata_flagctrl_tx_last <= txdata_flagctrl_tx_last; |
|
if(gotfct_tx && !block_sum) |
999,21 → 971,14
end |
else |
block_sum <= block_sum; |
|
hold_data <= 1'b1; |
ready_tx_data <= 1'b0; |
ready_tx_timecode <= 1'b0; |
global_counter_transfer <= global_counter_transfer + 4'd1; |
end |
else |
begin |
global_counter_transfer <= 4'd0; |
fct_counter_receive <= fct_counter_receive - 6'd1; |
|
if(data_tx_i[1:0] == 2'b00) |
begin |
last_type <=EOP; |
end |
else if(data_tx_i[1:0] == 2'b01) |
begin |
last_type <=EEP; |
end |
end |
|
end |
|
end |