AR# 3278

ABEL - ABEL で双方向バスをインプリメントする方法

説明

キーワード : bi-directional, bidirectional, bi-dir, bidir, .pin, abel, abl, xabel, inout, io, Data I/O, Foundation, 双方向, 入出力

次に、ABEL で双方向ピンを正しくコード記述する方法を示します。ピンで入力信号を指定するのに .PIN 拡張子を使用していることに注意してください。

ソリューション

"The following code shows the correct way to code abel to
"implement a bidirectional pin.

"if sel=1 then left is in, right is out
"if sel=0 then right is in, left is out


module busses
Title 'busses'

Declarations
"inputs
clk PIN;
sel PIN;

"inouts
inout_left7..inout_left0 PIN istype 'reg';
inout_right7..inout_right0 PIN istype 'reg';


"declarations
inout_left = [inout_left7..inout_left0];
inout_right = [inout_right7..inout_right0];

"nodes
tri node istype 'com';
"in_from_left node istype 'com';
"in_from_right node istype 'com';

".pins are the inputs, without it it shows an output
in_from_left=inout_left.pin;
in_from_right=inout_right.pin;


Equations
"clks
inout_left.clk=clk;
inout_right.clk=clk;

tri=sel;
inout_left.oe=!tri;
inout_right.oe=tri;




"right to left flow
when sel==0 then inout_left:=in_from_right; else
"left to right flow
when sel==1 then inout_right:=in_from_left;


end busses



"end of abel code
busses.abl の回路図
論理シミュレーションの波形
AR# 3278
日付 07/26/2010
ステータス アーカイブ
種類 一般