機能
双方向のハイインピーダンス制御機能付きバッファの記述例
解説
双方向の入出力端子として「PortA」と「PortB」の2本を宣言する
DIR信号がLレベル,かつOEN信号がHレベルのときは,PortBからPortAに信号を伝達する.
DIR信号がHレベル,かつOEN信号がHレベルのときは,PortAからPortBに信号を伝達する.
OEN信号がLレベルのときは出力端子をHi-Z(ハイインピーダンス)にする.
留意点
TTL標準ロジックの74245データバスバッファの1エレメント機能と同等.
NSL記述例
/* ************************************************************ */
declare     bidirect_1bit   {
    inout       PortA ;
    inout       PortB ;
    input       DIR ;           //  0 : PortB to PortA
                                //  1 : PortA to PortB
    func_in     OEN() ;         //  0 : Hi Impedance status.
                                //  1 : Output PIN drive.
}
module      bidirect_1bit   {
/* ************************************************************ */
    function    OEN {
        any {
            ~DIR    : PortA = PortB ;
            else    : PortB = PortA ;
        }
    }
}Verilog変換例
/*
 Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:54:23 2010
 Licensed to :EVALUATION USER:
*/
module bidirect_1bit ( p_reset , m_clock , PortA , PortB , DIR , OEN );
  input p_reset, m_clock;
inout PortA;
inout PortB;
  input DIR;
  input OEN;
  wire _net_0;
   assign  _net_0 = ~DIR;
   assign  PortA = (OEN&_net_0)? ((OEN&_net_0)?PortB:1'bZ):1'bz;
   assign  PortB = (OEN&(~_net_0))? ((OEN&(~_net_0))?PortA:1'bZ):1'bz;
endmodule
/*
 Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:54:23 2010
 Licensed to
*/