汎用遅延素子2

概要

(詳細記述予定)

動作確認

ツール バージョン 結果
NC-Verilog 未確認
VCS-MX 未確認
ModelSim 未確認
Cver 未確認

テストコード

(概要を記述予定)
(実行方法を記述予定)

パタン1

(パタン内容を記述予定)
initial begin
  //verilogテストパタン1
end
 


(実行結果1)

ソースコード


ファイル1

module pulse_delay (
  CLK   ,
  RST_X ,
  i_SIN ,
  o_SOUT
);
///////////////////////////////////////
// Parameter
  parameter    P_DLY = 10 ;
  parameter    P_CW  = 4 ;
 
///////////////////////////////////////
// Ports
  input   CLK   ;
  input   RST_X ;
  input   i_SIN ;
  output  o_SOUT;
 
///////////////////////////////////////
// Register
  reg                   r_sin    ;
  reg                   r_ce     ;
  reg  [( P_CW - 1 ):0] r_cnt    ;
  reg                   r_sout   ;
///////////////////////////////////////
// Wire
  wire                w_ce_on  ;
  wire                w_ce_off ;
  wire                w_ce_nxt ;
  wire [ P_CW - 1 :0] w_clv    ;
  wire [ P_CW - 1 :0] w_cnt_nxt;
 
///////////////////////////////////////
// Function
 
  always @( posedge CLK or negedge RST_X )begin
    if( ~RST_X )begin
      r_sin <= 1'b0;
    end else begin
      r_sin <= i_SIN;
    end
  end
 
  assign w_ce_on  = {r_sin, i_SIN} == 2'b01 ? 1'b1 : 1'b0;
  assign w_ce_off = &{r_ce, r_cnt} ;
  assign w_ce_nxt = |{w_ce_on, &{~w_ce_off, r_ce}} ;
 
  always @( posedge CLK or negedge RST_X )begin
    if( ~RST_X )begin
      r_ce <= 1'b0;
    end else begin
      r_ce <= w_ce_nxt ;
    end
  end
 
  assign w_clv     = ( 2 << P_CW ) - P_DLY ;
  assign w_cnt_nxt = w_ce_on  ? w_clv          :
                    ~w_ce_nxt ? {(P_CW){1'b0}} :
                                r_cnt + 1'b1   ;
 
  always @( posedge CLK or negedge RST_X )begin
    if( ~RST_X )begin
      r_cnt <= {(P_CW){1'b0}};
    end else begin
      r_cnt <= w_cnt_nxt ;
    end
  end
 
  always @( posedge CLK or negedge RST_X )begin
    if( ~RST_X )begin
      r_sout <= 1'b0;
    end else begin
      r_sout <= &{w_ce_nxt, w_cnt_nxt} ;
    end
  end
 
  assign o_SOUT = r_sout ;
 
endmodule
(概要を記述予定)

ファイル2

(verilogソースコード2)
 
(概要を記述予定)


Top > 言語 > verilog > Tips > 汎用遅延素子2
link_pdfプラグインはご利用いただけなくなりました。























-

最終更新:2009年01月08日 19:39