機能
双方向のハイインピーダンス制御機能付きバッファの記述例
解説
双方向の入出力端子として「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
*/