OpenCores
URL https://opencores.org/ocsvn/spacewiresystemc/spacewiresystemc/trunk

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [rtl/] [RTL_VB/] [tx_spw.v] - Diff between revs 13 and 15

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 13 Rev 15
Line 98... Line 98...
        reg [2:0] fct_send;
        reg [2:0] fct_send;
        reg [2:0] fct_send_last;
        reg [2:0] fct_send_last;
        reg [2:0] fct_flag;
        reg [2:0] fct_flag;
 
 
        reg [5:0] fct_counter;
        reg [5:0] fct_counter;
        reg [5:0] fct_counter_last;
 
        reg [5:0] fct_counter_receive;
        reg [5:0] fct_counter_receive;
 
 
        reg last_tx_dout;
        reg last_tx_dout;
        reg last_tx_sout;
        reg last_tx_sout;
 
 
        reg [3:0] global_counter_transfer;
        reg [3:0] global_counter_transfer;
 
 
/*
 
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;
 
*/
 
 
 
always@(*)
always@(*)
begin
begin
        tx_dout = 1'b0;
        tx_dout = 1'b0;
 
 
Line 445... Line 438...
        end
        end
 
 
end
end
 
 
//slots open in another side
//slots open in another side
always@(posedge gotfct_tx or negedge enable_tx)
always@(posedge gotfct_tx , negedge enable_tx)
begin
begin
 
 
        if(!enable_tx)
        if(!enable_tx)
        begin
        begin
                fct_counter <= {6{1'b0}};
                fct_counter <= 6'd0;
 
        end
 
        else
 
        begin
 
                if(fct_counter  < 6'd55)
 
                begin
 
                        if(enable_n_char && global_counter_transfer == 4'd9 && !data_tx_i[8])
 
                        begin
 
                                if(fct_counter < 6'd55)
 
                                        fct_counter <= fct_counter_receive + 6'd8 - 6'd1;
 
                                else
 
                                        fct_counter <= 6'd0;
 
                        end
 
                        else if(enable_n_char && global_counter_transfer == 4'd3 && data_tx_i[8])
 
                        begin
 
                                if(fct_counter < 6'd55)
 
                                        fct_counter <= fct_counter_receive + 6'd8 - 6'd1;
 
                                else
 
                                        fct_counter <= 6'd0;
 
                        end
 
                        else if(fct_counter == 6'd48)
 
                        begin
 
                                if(fct_counter < 6'd55)
 
                                        fct_counter <= fct_counter_receive + 6'd7;
 
                                else
 
                                        fct_counter <= 6'd0;
        end
        end
        else
        else
        begin
        begin
                if(fct_counter == 6'd56)
                                if(fct_counter < 6'd55)
                        fct_counter <= 6'd8;
                                        fct_counter <= fct_counter_receive + 6'd8;
 
                                else
 
                                        fct_counter <= 6'd0;
 
                        end
 
 
 
                end
                else
                else
                        fct_counter <= fct_counter + 6'd8;
                fct_counter <= 6'd0;
        end
        end
end
end
 
 
 
 
//slots open in our side
//slots open in our side
Line 612... Line 634...
                global_counter_transfer <= 4'd0;
                global_counter_transfer <= 4'd0;
                txdata_flagctrl_tx_last <= 9'd0;
                txdata_flagctrl_tx_last <= 9'd0;
                last_timein_control_flag_tx <= 8'd0;
                last_timein_control_flag_tx <= 8'd0;
 
 
                fct_counter_receive <= 6'd0;
                fct_counter_receive <= 6'd0;
                fct_counter_last <= 6'd0;
                //fct_counter_update <= 6'd0;
 
                //fct_counter_last <= 6'd0;
 
 
                last_tx_dout      <= 1'b0;
                last_tx_dout      <= 1'b0;
                last_tx_sout      <= 1'b0;
                last_tx_sout      <= 1'b0;
                state_tx <= tx_spw_start;
                state_tx <= tx_spw_start;
        end
        end
Line 631... Line 654...
                begin
                begin
 
 
                        ready_tx_data <= 1'b0;
                        ready_tx_data <= 1'b0;
                        ready_tx_timecode <= 1'b0;
                        ready_tx_timecode <= 1'b0;
 
 
 
                        if(fct_counter > 6'd0)
 
                                fct_counter_receive <= fct_counter;
                        //
                        //
                        if(fct_send_last != fct_send)
                        if(fct_send_last != fct_send)
                        begin
                        begin
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                begin
                                begin
Line 646... Line 671...
                                end
                                end
 
 
                                fct_send_last <= fct_send;
                                fct_send_last <= fct_send;
                        end
                        end
 
 
                        //
 
                        if(fct_counter_last != fct_counter)
 
                        begin
 
                                if(fct_counter == 6'd8 && fct_counter_last == 6'd56)
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + 6'd8;
 
                                end
 
                                else
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + (fct_counter - fct_counter_last);
 
                                end
 
 
 
                                fct_counter_last <= fct_counter;
 
                        end
 
 
 
                        if(first_time)
                        if(first_time)
                        begin
                        begin
                                first_time <= 1'b0;
                                first_time <= 1'b0;
                                hold_null <= 1'b1;
                                hold_null <= 1'b1;
                                global_counter_transfer <= global_counter_transfer + 4'd1;
                                global_counter_transfer <= global_counter_transfer + 4'd1;
Line 684... Line 694...
                begin
                begin
 
 
                        ready_tx_data <= 1'b0;
                        ready_tx_data <= 1'b0;
                        ready_tx_timecode <= 1'b0;
                        ready_tx_timecode <= 1'b0;
 
 
                        //
                        if(fct_counter > 6'd0)
                        if(fct_counter_last != fct_counter)
                                fct_counter_receive <= fct_counter;
                        begin
 
                                if(fct_counter == 6'd8 && fct_counter_last == 6'd56)
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + 6'd8;
 
                                end
 
                                else
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + (fct_counter - fct_counter_last);
 
                                end
 
 
 
                                fct_counter_last <= fct_counter;
 
                        end
 
 
 
                        if(global_counter_transfer != 4'd3)
                        if(global_counter_transfer != 4'd3)
                        begin
                        begin
                                hold_fct <= 1'b1;
                                hold_fct <= 1'b1;
                                global_counter_transfer <= global_counter_transfer + 4'd1;
                                global_counter_transfer <= global_counter_transfer + 4'd1;
Line 716... Line 715...
                else if(enable_time_code)
                else if(enable_time_code)
                begin
                begin
 
 
                        ready_tx_data <= 1'b0;
                        ready_tx_data <= 1'b0;
 
 
 
                        if(fct_counter > 6'd0)
 
                                fct_counter_receive <= fct_counter;
 
 
 
 
                        if(global_counter_transfer == 4'd13)
                        if(global_counter_transfer == 4'd13)
                        begin
                        begin
                                ready_tx_timecode <= 1'b1;
                                ready_tx_timecode <= 1'b1;
                        end
                        end
 
 
                        //
 
                        if(fct_counter_last != fct_counter)
 
                        begin
 
                                if(fct_counter == 6'd8 && fct_counter_last == 6'd56)
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + 6'd8;
 
                                end
 
                                else
 
                                begin
 
                                        fct_counter_receive <= fct_counter_receive + (fct_counter - fct_counter_last);
 
                                end
 
 
 
                                fct_counter_last <= fct_counter;
 
                        end
 
 
 
                        //
                        //
                        if(fct_send_last != fct_send)
                        if(fct_send_last != fct_send)
                        begin
                        begin
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                begin
                                begin
Line 767... Line 754...
                else if(enable_n_char)
                else if(enable_n_char)
                begin
                begin
 
 
                        ready_tx_timecode <= 1'b0;
                        ready_tx_timecode <= 1'b0;
 
 
 
                        //if(fct_counter > 6'd0)
 
                        //      fct_counter_receive <= fct_counter;
                        //
                        //
                        if(fct_send_last != fct_send)
                        if(fct_send_last != fct_send)
                        begin
                        begin
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                if(fct_send == 3'd1 && fct_send_last == 3'd7)
                                begin
                                begin
Line 801... Line 790...
                                else
                                else
                                begin
                                begin
                                        hold_data <= 1'b0;
                                        hold_data <= 1'b0;
                                        global_counter_transfer <= 4'd0;
                                        global_counter_transfer <= 4'd0;
                                        //
                                        //
                                        if(fct_counter_last != fct_counter)
 
                                        begin
 
                                                if(fct_counter == 6'd8 && fct_counter_last == 6'd56)
 
                                                begin
 
                                                        fct_counter_receive <= fct_counter_receive + 6'd8 - 6'd1;
 
                                                end
 
                                                else
 
                                                begin
 
                                                        fct_counter_receive <= fct_counter_receive + (fct_counter - fct_counter_last) - 6'd1;
 
                                                end
 
 
 
                                                fct_counter_last <= fct_counter;
 
                                        end
 
                                        else
 
                                        begin
 
                                                fct_counter_receive <= fct_counter_receive - 6'd1;
                                                fct_counter_receive <= fct_counter_receive - 6'd1;
                                        end
 
                                end
                                end
 
 
                        end
                        end
                        else if(data_tx_i[8])
                        else if(data_tx_i[8])
                        begin
                        begin
Line 837... Line 811...
                                        global_counter_transfer <= global_counter_transfer + 4'd1;
                                        global_counter_transfer <= global_counter_transfer + 4'd1;
                                        txdata_flagctrl_tx_last <= data_tx_i;
                                        txdata_flagctrl_tx_last <= data_tx_i;
                                end
                                end
                                else
                                else
                                begin
                                begin
 
 
                                        hold_data <= 1'b0;
                                        hold_data <= 1'b0;
                                        global_counter_transfer <= 4'd0;
                                        global_counter_transfer <= 4'd0;
                                        //
 
                                        if(fct_counter_last != fct_counter)
 
                                        begin
 
                                                if(fct_counter == 6'd8 && fct_counter_last == 6'd56)
 
                                                begin
 
                                                        fct_counter_receive <= fct_counter_receive + 6'd8 - 6'd1;
 
                                                end
 
                                                else
 
                                                begin
 
                                                        fct_counter_receive <= fct_counter_receive + (fct_counter - fct_counter_last) - 6'd1;
 
                                                end
 
 
 
                                                fct_counter_last <= fct_counter;
 
                                        end
 
                                        else
 
                                        begin
 
                                                fct_counter_receive <= fct_counter_receive - 6'd1;
                                                fct_counter_receive <= fct_counter_receive - 6'd1;
                                        end
 
                                end
                                end
                        end
                        end
 
 
                end
                end
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.