Давайте думать над железкой (TRIADOR)
Moderator: haqreu
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Погоди, если я правильно помню, то в DDT у тебя строится дерево вызова функций. А у в компе троичном там циклы бывают. Как ты циклы представишь в DDT?
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Это переводилка из таблицы истинности в комбинационную схему на мультиплексорах так работает (до автоматической композиции автоматов я пока не дорос)haqreu wrote:Погоди, если я правильно помню, то в DDT у тебя строится дерево вызова функций. А у в компе троичном там циклы бывают. Как ты циклы представишь в DDT?
А в системе предопределённых функций в ddt.c есть MEM:
Code: Select all
int ddt_mem(int f, DDT c, DDT a, DDT b, DDT* r, int i)
{
static int ddt_mem_size = 0;
static char *ddt_mem_array = NULL;
if(f==DDT_SIM)
{
if(ddt_error(c)||ddt_error(a)||ddt_error(b)||i<0) return DDT_ERROR_ARG;
if(!ddt_mem_array)
{
ddt_mem_array = (char*)malloc(100);
if(!ddt_mem_array) return DDT_ERROR_MEM;
ddt_mem_size = 100;
memset(ddt_mem_array,O,100);
}
if(i >= ddt_mem_size)
{
ddt_mem_array = (char*)realloc(ddt_mem_array,(size_t)ddt_mem_size+100);
if(!ddt_mem_array) return DDT_ERROR_MEM;
memset(&ddt_mem_array[ddt_mem_size],O,100);
ddt_mem_size += 100;
}
switch(c)
{
case N: ddt_mem_array[i]=(char)a; break;
case O: break;
case P: ddt_mem_array[i]=(char)b; break;
}
if(r) *r=ddt_mem_array[i];
return 1;
}
if(f==DDT_MEM) return 1;
return 0;
}

Там внутри юзается глобальный массив троичных переменных - по одной переменной на каждый MEM, а в качестве лишнего аргумента этой функции передаётся индекс такой переменной в этом глобальном массиве - автоматы более высокого уровня будут при вызове MEM-ов (или автоматов помельче) передавать скорректированный индекс, чтобы схемы нижнего уровня правильные переменные для запоминания состояний исользвали в этом глобальном массиве при каждом шаге симуляции - вобщем как-то так...
P.S. Что-то наверное if(i >= ddt_mem_size) надо заменить на while(i >= ddt_mem_size) - кто знает какой там индекс первым прилетит и потом инициализировать наверное надо не нулём, а 'O' (ну или рандомно 'N','O','P' брать для неопределённости начальных состояний)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Начал писать в досовском борланде программу по декоду ternary.circ:Shaos wrote:Наверное пора конвертилку уже писать на сях из файла Logisim в DDT-симуляшку...
P.S. Ну как минимум генерилку нетлиста надо...
Пока научился выделять нужную схему из файла и рисовать её провода (что влезли в 640x480):
Вот что выделилось (только тэг wire):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Вроде научился определять где линии стыкуются (начинаются или заканчиваются в одной точке в количестве более 2 - там ставлю кругляш), а где нет (идут в нахлёст друг над другом и электрически не соединяются):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Теперь разбираю тэг comp (компонент) - интересно, что в качестве его координат (loc=) указываются координаты первого выхода (но не для стандартных компонентов типа сплиттера или светодиода):
Пока разобрал только своё троичное (неизвестные программе компоненты изображены большими окружностями):
Пока разобрал только своё троичное (неизвестные программе компоненты изображены большими окружностями):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Shaos wrote:Начал писать в досовском борланде

...И откопали стюардессу...
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Ну просто там проще всего графику накидать примитивами 

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Я так и понял. Но зато там нет нормальных средств разработки. Valgrind появился куда как позже...
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Я бы скорее выдал бы на экран файл postscript или .svg, вот тебе и векторная графика с примитивами. Заодно не лишаешь себя человеческих инструментов.
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Ну вот - накидал ещё компонентов (но со сплиттерами и светодиодами всё ещё беда) и добавил возможность ходить стрелками по полю 

Досовский архив с исходником (всего 368 строк сишного кода) и 16-битным EXE-шником приаттачен


Досовский архив с исходником (всего 368 строк сишного кода) и 16-битным EXE-шником приаттачен

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Эээ... По мне так куда проще line вызывать с circle нежели городить постскрипт, а тем более svghaqreu wrote:Я бы скорее выдал бы на экран файл postscript или .svg, вот тебе и векторная графика с примитивами. Заодно не лишаешь себя человеческих инструментов.

И потом человеческий инструмент настоящего программиста - это текстовый редактор

Ну и командная строка для компиляции само собой...
А зачем мне валгринд? Я мегатонны памяти туда-сюда не тягаю и утечек не боюсьhaqreu wrote:Я так и понял. Но зато там нет нормальных средств разработки. Valgrind появился куда как позже...

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Давайте думать над железкой (TRIADOR)
Наш человек!Shaos wrote:И потом человеческий инструмент настоящего программиста - это текстовый редактор
Ну и командная строка для компиляции само собой...


iLavr
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Я, конечно, люблю олдскул. Но только когда программа не переваливает за десяток тысяч строк. И не притворяйтесь, что вы другого мнения 

-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Да я и сотню тысяч строк в текстовом редакторе глазами отлаживал бывало - и ничего 
В последние лет пять правда, когда программы нашей конторы стали миллионами строк измеряться, меня от девелопмента уже отодвинули
Так что олдскульность остаётся прикладывать только к своим хобби

В последние лет пять правда, когда программы нашей конторы стали миллионами строк измеряться, меня от девелопмента уже отодвинули

Так что олдскульность остаётся прикладывать только к своим хобби

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Не, ну я тоже бывало printfы вставлял для дебага в гиганстской софтине. Но нормальный инструмент всё же удобнее 
