Overtone NSL Support

NSLサポートページ



3ステート 8ビット幅 バスバッファ Aタイプ


機能

8ビット双方向バスx2ポートの機能コード.標準TTL74245のNSL記述版

信号機能

Port_A = 8ビット双方向バス
Port_B = 8ビット双方向バス
DIR = 転送方向.1のときはAポートからBポートへ,0のときはBポートからAポートへ
nOE = 出力イネーブル.0のときにDIRの要求に応じた信号伝達.1のときはHi-Z

記述特徴

本コードでは,output_enable()名で内部制御信号を作成し,nOEがL時にこの制御信号が呼ばれます.
制御信号が呼ばれると,functionで書かれたプロシジャが呼び出され,この中でDIR信号を見て,信号の伝達方向を決めます.

NSL合成ツールは,bidirect宣言された出力信号に対する制御が**行われていない**時(未使用時)には,Hi-Zにするコードを生成します.

注意点

NSLの言語仕様規定により,functionに続く制御信号名の明示位置には論理式の記述はできません.以下のような例は文法エラーになります.
例)
・function ~nOE any{ ・・・ }  ⇒ 文法エラー
・function ( ~nOE & DIR ) any{ ・・・ }  ⇒ 文法エラー

NSL記述例

/* ************************************************************ */

declare TTL_74245_TypeA {

    inout       Port_A[8] ;

    inout       Port_B[8] ;

    input       DIR ;       // Direction. 0 = Port B -> A, 1 = PortA -> PortB

    input       nOE ;

}

/* ************************************************************ */

module  TTL_74245_TypeA {

    func_self   output_enable() ;

/* Equation for biridection control */

    any {

        ~nOE : output_enable() ;

    }

    function    output_enable   any{

        ~DIR    : Port_B = Port_A ;

        else    : Port_A = Port_B ;

    }

}

Verilog変換例

/*
 Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:56:07 2010

 Licensed to :EVALUATION USER:
*/

module TTL_74245_TypeA ( p_reset , m_clock , Port_A , Port_B , DIR , nOE );
  input p_reset, m_clock;
inout [7:0] Port_A;
inout [7:0] Port_B;
  input DIR;
  input nOE;
  wire output_enable;
  wire _net_0;
  wire _net_1;

   assign  output_enable = _net_0;
   assign  _net_0 = ~nOE;
   assign  _net_1 = ~DIR;
   assign  Port_A = (output_enable&(~_net_1))? ((output_enable&(~_net_1))?Port_B:8'bZ):8'bz;
   assign  Port_B = (output_enable&_net_1)? ((output_enable&_net_1)?Port_A:8'bZ):8'bz;
endmodule
/*
 Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:56:07 2010

 Licensed to
*/
PAGE TOP