Цена по Квайну (без учета элементарных инверсов): 16
Следовательно применение JK- триггеров наиболее эффективно, так как цена б.ф. при этом меньше.
4.3.3. Синтез Yi+1
g3 |
||||||||
000 |
100 |
101 |
001 |
011 |
111 |
110 |
010 |
|
0 |
1 |
0 |
1 |
1 |
1 |
* |
* |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
* |
* |
0 |
g1 |
||||||||
000 |
100 |
101 |
001 |
011 |
111 |
110 |
010 |
|
0 |
1 |
1 |
1 |
1 |
0 |
* |
* |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
* |
* |
0 |
g2 |
||||||||
000 |
100 |
101 |
001 |
011 |
111 |
110 |
01 |
|
0 |
1 |
0 |
1 |
1 |
1 |
* |
* |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
* |
* |
1 |
|
5.Заключение
В общем и целом, этот процессор должен работать и при этом конечно же правильно. По моему мнению синтез УА следует производить не на мультиплексорах, а на элементах логики, это будет гораздо проще.
|
#include<stdio.h>
#include<math.h>
main()
{
signed char x,x1,o,y,y1,c;
int i,j;
float k;
char to_byte();
puts("\nВведите угол в радианах");
scanf("%f",&k);
o=to_byte(k);
y=0;
j=0;
x=to_byte(0.607259);
puts("\nX=");
putbyte(x);
puts("\nY=");
putbyte(y);
puts("\nO=");
putbyte(o);
puts("");
printf("| X(i) | Xсд | Y(i) | Yсд | О(i) |3н| X(i+1) | Y(i+1) | O(i+1) |\n");
printf("-------------------------------------------------------------------------\n");
for (i=0;i<7;i++)
{
j++;
x1=x;
y1=y;
x1=x1>>i;
y1=y1>>i;
c=to_byte(atan(pow(2,-i)));
/*Начало вывода элементов таблицы*/
putchar('|') ;
putbyte(x);
putchar('|');
putbyte(x1);
putchar('|');
putbyte(y);
putchar('|');
putbyte(y1);
putchar('|');
putbyte(o);
/*Cледующие элементы пойдут после вычисления */
if ( fabs(k) >= 1) c=c>>1;
if (o>=0)
{
o=o-c;
y=y-x1;
x=x+y1;
putchar('|');
|
putchar('+');
}
else
{
o=o+c;
y=y+x1;
x=x-y1;
putchar('|');
putchar('-');
}
/*Окончание таблицы */
putchar('|');
putbyte(x);
putchar('|');
putbyte(y);
putchar('|');
putbyte(o);
putchar('|');
puts("");
}
puts("Синус равен:");
putbyte(-y);
puts("\nКосинус равен:");
putbyte(x);
puts("\n----------правильный----");
putbyte(to_byte(sin(k)));
puts("");
putbyte(to_byte(cos(k)));
printf("\n\nj=%d",j);
return;
}
/* Функция распечатки байта на экране */
int putbyte(byte)
char byte;
{
char i,k;
for (i=7;i>=0;i--)
{
k=pow(2,i);
if ( (byte & k) != 0) printf("1");
else printf("0");
}
return ;
}
/* Перевод константы в байт (тип char) из переменной float */
|
char
to_byte(b)
float b;
{
signed char d;
if (fabs(b)>=1 )
{b=b*64;
d=(char)b;
}
else
{
b=b*128;
d=(char)b;
}
return d;
}
1. Байков В.Д., Смолов В.Б. Специализированные процессоры: Итерационные алгоритмы и структуры. М.: Радио и связь, 1985.- 288 с., ил.
2. Бай ков В.Д., Смолов В.Б. Аппаратурная реализация элементарных функций в ЦВМ. Л., Изд-во Ленингр. Ун-та, 1975, 96с
|
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.