Старинный FPGA с механической прошивкой :)
http://www.KpXX.Ru/Феликс
Вид для печати
Старинный FPGA с механической прошивкой :)
http://www.KpXX.Ru/Феликс
Уф... Война с сериал-портами :) То, как сделано у автора плюс - ну вылетело у меня из головы, что в VHDL - это не операторы присваивания, а соединения и у них есть направление сигнала... В общем, то в одном месте пытался соединить rx с rx, tx с tx, то в другом :) В очередной раз - рисуем на бумажке - вход выход - пишем код :) Переделал :) Заработало :) Теперь делаю более простой вариант переключения - кто у меня системный терминал - COM порт PC или модуль VT в FPGA :)
Сделай и тот, и другой, один 177560, второй 176570 и меняй у них адреса, это изменить один бит.
Поздравляю, ты тоже сейчас думаешь как программист, а не как железячник ;)
В синтезируемом PDP есть 4 модуля KL-11 (так что вопрос не в - сделай тот и другой ;) у автора сделано достаточное количество)
Их нужно
а) правильно соединить с выходным серийным портом и портом синтезируемого VT
б) параметризовать эти СОЕДИНЕНИЯ
Основная война у меня - пункт а :)
- - - Добавлено - - -
Могу сказать образней.
Перед тобой стоит PDP, откуда выходят два кабеля - в два терминала :)
Нужно поменять их подключение.
Ты предлагаешь мне добраться до плат контроллеров и поменять адреса на них :)
Я хочу - просто переткнуть провода :)
Но это я уже научился делать (и не втыкая провод не в то гнездо) :):)
Теперь моя задача - сделать переключатели, которыми я мог бы выбирать - в какой порт воткнут терминал.
В общем, такой переключатель я "спаял", но опять провода перепутал :):)
Уф... Вроде сделал типа простого мультиплексора. С утра правда успел проверить только, что на нулевом канале с PC и на первом канале с VT всё работает. Вечером проверю, если РС сидит на первом канале, а VT на нулевом - тоже всё работает :) Но почти уверен :) В коде переключение выглядит так
илиКод:portForFPGA <= 0; -- PC подключен на PDP к KL11-0
portForVT <= 1; -- VT подключен на PDP к KL11-1
Код:portForFPGA <= 1; -- PC подключен на PDP к KL11-1
portForVT <= 0; -- VT подключен на PDP к порту KL11-0
Мля... Думаю дальше
Уф... Вроде убедил синтезатор сделать так, как Я хочу, а не так, как ЕМУ хочется :) В попытках убедить код немного поменялся, теперь выглядит так:
Так же исправил неточность с XU (но учитывая, что до его проверки я не дошёл - пока это никак не сказалось быКод:type SerialPortOnDevice is (PDPSerialPort0, PDPSerialPort1, PDPSerialPort2, PDPSerialPort3, XUSerialPort);
-- FPGA port connection
constant FPGAPortForSerial : SerialPortOnDevice := PDPSerialPort0;
-- for vt
constant VTPortForSerial : SerialPortOnDevice := PDPSerialPort1;
Похоже, с серийниками разобрался :) Ещё немного знаний о электронике - науке о контактах и соединениях :)
Причесал код (после безумных разборок с серийными портами).
Собрал один вариант соединений (системный терминал - к PC, доп терминал - к VT) - работает.
Поменял код (системный терминал - к VT, доп терминал - к PC), поставил синтезироваться. Проверять буду утром :)
Если всё нормально - продолжу причёсывать код в плане интерфейсов (переделка под RECORD)
Двигаемся дальше :)
Блямбус... Только разобрался с одним... и влетел в другое... Кабы раньше то подумать.... Короче, скорее всего застрял надолго - буду учиться работать с памятью. Собственно, с этой темы и начались большие переделки PDP-2011.
Пока на генерируемой в FPGA. Надеюсь, надыбленное пригодится с SDRAM.
Ушёл надолго - вернусь не скоро :) Ну то есть перодически буду сюда пописать об неудачах (много) и успехах (мало) :))