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

Subversion Repositories yifive

[/] [yifive/] [trunk/] [caravel_yifive/] [verilog/] [rtl/] [spi_master/] [src/] [spim_clkgen.sv] - Diff between revs 18 and 21

Show entire file | Details | Blame | View Log

Rev 18 Rev 21
Line 83... Line 83...
           if(en)
           if(en)
           begin
           begin
              if(clk_cnt == sck_half_period)
              if(clk_cnt == sck_half_period)
              begin
              begin
                 spi_clk    <= 1'b0;
                 spi_clk    <= 1'b0;
                 spi_fall   <= 1'b1;
              end // if (clk_cnt == sck_half_period)
 
              else if(clk_cnt == cfg_sck_period) begin
 
                    spi_clk    <= 1'b1;
 
              end
 
           end else begin
 
              spi_clk    <= 1'b1;
 
           end // else: !if(en)
 
        end // else: !if(!reset_n)
 
    end // always @ (posedge clk or negedge reset_n)
 
 
 
    // Generate Free runnng spi_fall and rise pulse
 
    // after en is asserted
 
    always @(posedge clk or negedge rstn) begin
 
        if(!rstn) begin
 
           clk_cnt    <= 'h1;
 
           spi_fall   <= 1'b0;
                 spi_rise   <= 1'b0;
                 spi_rise   <= 1'b0;
 
        end // if (!reset_n)
 
        else
 
        begin
 
           if(clk_cnt == sck_half_period)
 
           begin
 
              spi_fall   <= 1'b0;
 
              spi_rise   <= 1'b1;
                 clk_cnt    <= clk_cnt + 1'b1;
                 clk_cnt    <= clk_cnt + 1'b1;
              end // if (clk_cnt == sck_half_period)
              end // if (clk_cnt == sck_half_period)
              else begin
              else begin
                 if(clk_cnt == cfg_sck_period)
                 if(clk_cnt == cfg_sck_period)
                 begin
                 begin
                    spi_clk    <= 1'b1;
                 spi_fall   <= 1'b1;
                    spi_fall   <= 1'b0;
                 spi_rise   <= 1'b0;
                    spi_rise   <= 1'b1;
 
                    clk_cnt    <= 'h1;
                    clk_cnt    <= 'h1;
                 end // if (clk_cnt == cfg_sck_period)
                 end // if (clk_cnt == cfg_sck_period)
                 else
                 else
                 begin
                 begin
                    clk_cnt    <= clk_cnt + 1'b1;
                    clk_cnt    <= clk_cnt + 1'b1;
                    spi_fall   <= 1'b0;
                    spi_fall   <= 1'b0;
                    spi_rise   <= 1'b0;
                    spi_rise   <= 1'b0;
                  end // else: !if(clk_cnt == cfg_sck_period)
                  end // else: !if(clk_cnt == cfg_sck_period)
              end // else: !if(clk_cnt == sck_half_period)
              end // else: !if(clk_cnt == sck_half_period)
           end // if (en)
 
           else begin
 
              clk_cnt    <= 'h1;
 
              spi_fall   <= 1'b0;
 
              spi_rise   <= 1'b0;
 
           end // else: !if(en)
 
        end // else: !if(!reset_n)
        end // else: !if(!reset_n)
    end // always @ (posedge clk or negedge reset_n)
    end // always @ (posedge clk or negedge reset_n)
 
 
endmodule
endmodule

powered by: WebSVN 2.1.0

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