機能
片方向のハイインピーダンス制御機能付きバッファの記述例(2)
信号機能
解説
入力端子「OUT_to_HiZIO」の状態を出力端子HiZ_IO_pinに伝達する.
OEN信号がHレベルのときに入力端子の状態を出力端子に伝達.
OEN信号がLレベルのときは出力端子をHi-Z(ハイインピーダンス)にする.
IN_from_HiZIO出力端子には,双方向端子HiZ_IO_pinの値が常時反映される.
留意点
出力方向しかない端子であっても,Hi-Z機能を使用する場合には「inout」属性をもつ端子名で宣言します.
「output」属性の端子はHi-Zの合成は行われません.
NSL記述例
/* ************************************************************ */
declare HiZ_sample_INOUT {
inout HiZIO_pin ;
output IN_from_HiZIO ;
input OUT_to_HiZIO ;
func_in OEN() ; // 0 : BIDIR.out = HiZ, BIDIR pin value -> IN pin.
// 1 : OUT pin value -> BIDIR pin,
}
/* ************************************************************ */
module HiZ_sample_INOUT {
/* ************************************************************ */
/*
// Equation sample #1
{
if ( OEN ) HiZIO_pin = OUT_to_HiZIO ; // Data output at OEN is 'H'
IN_from_HiZIO = HiZIO_pin ; // Always reflect.
}
*/
/* ************************************************************ */
/*
// Equation sample #2
any {
OEN : HiZIO_pin = OUT_to_HiZIO ;
// Output internal signal to PIN at an 'OEN' is 'H'
else : IN_from_HiZIO = HiZIO_pin ;
// PIN value is reflected to IN_from_HiZIO pin.
// - But, a pin of declared as output, right side value is
// reflected to left side even if 'else' situaion.
}
*/
/* ************************************************************ */
// Equation sample #3
{
IN_from_HiZIO = HiZIO_pin ; // Always reflect.
}
function OEN {
HiZIO_pin = OUT_to_HiZIO ;
// Output internal signal to PIN at an 'OEN' is 'H'
}
}
Verilog変換例
/*
Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:54:28 2010
Licensed to :EVALUATION USER:
*/
module HiZ_sample_INOUT ( p_reset , m_clock , HiZIO_pin , IN_from_HiZIO , OUT_to_HiZIO , OEN );
input p_reset, m_clock;
inout HiZIO_pin;
output IN_from_HiZIO;
input OUT_to_HiZIO;
input OEN;
assign HiZIO_pin = (OEN)? ((OEN)?OUT_to_HiZIO:1'bZ):1'bz;
assign IN_from_HiZIO = HiZIO_pin;
endmodule
/*
Produced by NSL Core, IP ARCH, Inc. Fri Jun 04 17:54:28 2010
Licensed to
*/