if(~s&~r){q="1"; q'="1";}
if(~s&r){q="1"; q'="0";}
Рис. 1.9 if(s&~r){q="0"; q'="1";}
if(s&r && z=="\")
{if(j=="x"||k=="x"){q="x"; q'="x";}
if(x&~y){q="1"; q'="0";}
if(~x&y){q="0"; q'="1";}
if(x&y|(x=="\"&&y=="\"))
if(q){q="0"; q'="1";}
else{q="1"; q'="0";}}}
/* Задержки для j,k,c увеличены в два раза по сравнению с r и s !*/
Универсальный регистр
/* Универсальный pегистp с последовательными входами ds0,ds7, последовательными выходами q0,q7, выводами вход/выход 0 – 7 с третьим состоянием, управляемым сигналами eo1'
и eo2',
r',c – традиционные входы сброса и синхронизации,
s0,s1 – входы управления режимом,
q1 – q6 – внутренние узлы. */
/* Начальные значения сигналов на двунаправленных выводах 0–7 задать командой INIT */
Рис. 1.10 rg8()
input ds0,ds7,s0,s1,r',c,eo1',eo2';
output q0,q7;
inout 0,1,2,3,4,5,6,7;
local q1,q2,q3,q4,q5,q6;
/*неопределенное состояние*/
{if (r'=="x" || s0=="x" || s1=="x")
{q7="x"; q6="x"; q5="x"; q4="x"; q3="x"; q2="x"; q1="x"; q0="x";}
if (eo1'=="x" || eo2'=="x" || s0=="x" || s1=="x")
{ 0="x";1="x";2="x";3="x";4="x";5="x";6="x";7="x";}
/* сбpос */
if (r'=="0") {q7="0";q6="0";q5="0";q4="0";q3="0";q2="0";q1="0";q0="0";}
/* 3–e состояние */
if (eo1'=="1" || eo2'=="1")
{7="1"(5,4,"z","z"); 6="1"(5,4,"z","z"); 5="1"(5,4,"z","z");
4="1"(5,4,"z","z"); 3="1"(5,4,"z","z"); 2="1"(5,4,"z","z");
1="1"(5,4,"z","z"); 0="1"(5,4,"z","z");}
/* прочие действия */
if (r'=="1" && c=="/")
/* загpузка из шины */
{if (s0=="1" && s1=="1")
{q0=0; q1=1; q2=2; q3=3; q4=4; q5=5; q6=6; q7=7;}
/* сдвиг влево */
if (s0=="1" && s1=="0")
{q7=q6; q6=q5; q5=q4; q4=q3; q3=q2; q2=q1; q1=q0; q0=ds0;}
/* сдвиг вправо */
if (s0=="0" && s1=="1")
{q0=q1; q1=q2; q2=q3; q3=q4; q4=q5; q5=q6; q6=q7; q7=ds7;}
/* выдача содержимого регистра в шину */
if (eo1'=="0" && eo2'=="0" && (s0=="0" || s1=="0"))
{0=q0; 1=q1; 2=q2; 3=q3; 4=q4; 5=q5; 6=q6; 7=q7;}}}
Двоичный счетчик (рис. 1.11)
сt2()
input st, r; /* st – счетный вход, r – сброс,*/
output y1,y2,y3,y4; /* y1,y2,y3,y4 – выходы.*/
{if(r=="x"){y1="x";y2="x";y3="x";y4="x";}
if(r=="1"){y1="0";y2="0";y3="0";y4="0;}
if(r=="0" && st=="\")
{if(y1) {y1="0";
if(y2) {y2="0";
if(y3) {y3="0";
if(y4) y4="0";
else y4="1";}
else y3="1";}
else y2="1";}
else y1="1";}}
Десятичный РЕВЕРСИВНЫЙ счетчик (рис. 1.12)
ct10 ()
input st, r; v; /* st – счетный вход, r – сброс, v – управление счетом.*/
output y1,y2,y3,y4,t;
/* y1,y2,y3,y4 – выходы разрядов, t – групповой перенос.*/
{if(r=="x"||v=="x"||st=="x") {y1="x";y2="x";y3="x";y4="x";t="x";}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.