Важная информация

User Tag List

Страница 12 из 14 ПерваяПервая ... 891011121314 ПоследняяПоследняя
Показано с 111 по 120 из 132

Тема: AZ для БК-0011М

  1. #111
    Member Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    140
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    52
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    upd: точнее это не баг, а следствие действий оптимизатора, который делает автомат в onehot и как следствие у него появляются запрещенные состояния, в которые он и влетает
    лечится явной установкой кодирования автомата или установкой safe
    Макс, а ты на каком языке пишешь? В VHDL для этого есть ветка others, в Verilog -- default. Нормальные компиляторы ругаются на их отсутствие.

  2. #112
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    834
    Спасибо Благодарностей отдано 
    172
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    155 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    Макс, а ты на каком языке пишешь? В VHDL для этого есть ветка others, в Verilog -- default. Нормальные компиляторы ругаются на их отсутствие.
    verilog
    ветка конечно описана, но (!) оптимизатору на нее пофиг
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  3. #113
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    4,693
    Спасибо Благодарностей отдано 
    136
    Спасибо Благодарностей получено 
    285
    Поблагодарили
    239 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    лечится
    Мне помогало никогда не проверять на то значение, которое onehot.

  4. #114
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    834
    Спасибо Благодарностей отдано 
    172
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    155 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Мне помогало никогда не проверять на то значение, которое onehot.
    тут речь немного о другом - изначально автомат обычный:

    Код:
    localparam STATE_STM_WAIT	= 3'd0; 	// ждем =0 на STM_U_QBUS_IN_L
    localparam STATE_STM_CLANK1= 3'd1; 	// антизвон
    localparam STATE_STM_CLANK2= 3'd2; 	// антизвон
    localparam STATE_STM_CLANK3= 3'd3; 	// антизвон
    localparam STATE_STM_FLAG	= 3'd4;	// ждем установки флагов операции
    localparam STATE_STM_DATA	= 3'd5;	// запоминаем данные для команды
    localparam STATE_STM_OPER	= 3'd6;	// выполняем операцию
    localparam STATE_STM_END	= 3'd7;	// ждем завершения - снятия синка 
    
    
    reg [2:0] state_stm			/* synthesis syn_encoding="safe" */;
    reg [2:0] next_state_stm;	
    
     
    always @ (posedge CLK)
    begin
    	state_stm<=next_state_stm;
    end
    //
    
    wire stm_sync=STM_DA_OUT[8];
    
    always @ *
    begin
    	case (state_stm)
    		STATE_STM_WAIT:
    			if(STM_U_QBUS_IN_L==0)
    				next_state_stm=STATE_STM_CLANK1;
    			else
    				next_state_stm=STATE_STM_WAIT;
    				
    		STATE_STM_CLANK1:
    				next_state_stm=STATE_STM_CLANK2;
    		
    ....
    			
    		default:
    				next_state_stm=STATE_STM_WAIT;
    	endcase
    end
    но оптимизатор переделывает автомат в onehot

    и если работать без /* synthesis syn_encoding="safe" */;
    и так как управляющие сигналы - асинхронщина, то шанс влететь в запрещенное состояние становится очень большим

    соответственно можно или сказать
    /* synthesis syn_encoding="safe" */; - те сделать защитную логику

    или вообще указать тип кодирования явно


    да, собирая грабли я таки вычистил тормозящие куски и теперь оперативка на 130MHz полноценно пашет
    Последний раз редактировалось SuperMax; 08.06.2021 в 13:07.
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  5. #115
    Member Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    140
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    52
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    c палитрой будет так:
    нумерация кодов цветов
    палитра коды цветов (адреса ячеек палитры)
    256 0-256
    (---)
    А зачем? Зачем прибивать разрядность палитры к диапазону адресов? Я бы просто сделал начальный адрес палитры и разрядность цвета. И пусть программист сам делит доступный ему бюджет регистров палитры, как хочет.

    Зачем это прокрустово ложе?

    - - - Добавлено - - -

    Цитата Сообщение от SuperMax Посмотреть сообщение
    тут речь немного о другом - изначально автомат обычный:

    но оптимизатор переделывает автомат в onehot

    и если работать без /* synthesis syn_encoding="safe" */;
    и так как управляющие сигналы - асинхронщина, то шанс влететь в запрещенное состояние становится очень большим
    Интересные дела. То есть, почему onehot -- понятно, в большинстве случаев это сильно упрощает автомат. Но вот такое поведение -- это явно некорректная опимизация при указанном default.

    Я предполагал классические косяки с casex, но для них тут нет места. Хм. Про комбинаторику даже не знаю, что сказать, это какой-то позор в синтезаторе.

    Тем не менее, я бы переписал на синхронный код. Тут у синтезатора гораздо меньше шансов проявить свободу своей хулиганской воли.

    PS: Вообще, когда я только начал работать на реальный кремний (2004), мне было сразу сказано, что /* synthesis ... */ в коде -- это заметание мусора под ковёр. Ни одного опровержения по сей день не видел.

  6. #116
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    834
    Спасибо Благодарностей отдано 
    172
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    155 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    А зачем? Зачем прибивать разрядность палитры к диапазону адресов? Я бы просто сделал начальный адрес палитры и разрядность цвета. И пусть программист сам делит доступный ему бюджет регистров палитры, как хочет.

    Зачем это прокрустово ложе?
    поясни идею

    чем плохо наличие персональной палитры у каждого цвета у каждого видеорежима и штатной палитры?

    это явно дает гибкость и сохраняет полную совместимость с легаси
    к примеру новое ПО использует штатный видеорежим, и штатные палитры
    но в AZ задаются более точные цвета - фон к примеру
    программа получается будет просто более красиво выглядеть на AZ

    или (что более вероятно) будет добивка кода в старое ПО где будет задаваться расширенная палитра и режим отображения
    к примеру в land вставить явное переключение в мнохром и сделать фон не черным а темнокрасным
    и менять его от уровня к уровню


    Интересные дела. То есть, почему onehot -- понятно, в большинстве случаев это сильно упрощает автомат. Но вот такое поведение -- это явно некорректная опимизация при указанном default.
    Я предполагал классические косяки с casex, но для них тут нет места. Хм. Про комбинаторику даже не знаю, что сказать, это какой-то позор в синтезаторе.
    Тем не менее, я бы переписал на синхронный код. Тут у синтезатора гораздо меньше шансов проявить свободу своей хулиганской воли.
    PS: Вообще, когда я только начал работать на реальный кремний (2004), мне было сразу сказано, что /* synthesis ... */ в коде -- это заметание мусора под ковёр.
    Ни одного опровержения по сей день не видел.
    тут 2 варианта решения - или safe или явное указание кодирования, последнее концептуально более правильно тк в прямом кодировании нет запрещенных состояний у этого автомата
    если говорить о правильности то вообще надо сделать иначе
    Последний раз редактировалось SuperMax; 10.06.2021 в 10:28.
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  7. #117
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    834
    Спасибо Благодарностей отдано 
    172
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    155 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Занялся разработкой стартовой "ПЗУ"

    Возникли вопросы:
    1. есть ли готовый код определения типа БК ?

    2. правильно ли я насчитал варианты:
    ;БК-10
    ;- с неотключаемым фокалом
    ;- с отключаемым бейсиком
    ;- с отключаемым бейсиком и монитором
    ;БК-11
    ;?
    ;БК-11М
    ;- обычная
    ;- новодел с отключаемым монитором

    или есть еще варианты ?

    особо волнует новодел БК11 тк его у меня нет
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  8. #118
    Member Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    140
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    52
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    поясни идею
    В смысле? Что тут пояснять? rgb = palette[colorIndex + paletteOffset];

    Цитата Сообщение от SuperMax Посмотреть сообщение
    чем плохо наличие персональной палитры у каждого цвета у каждого видеорежима и штатной палитры?
    Бесполезностью. Бессмысленная трата адресного пространства палитр, которое и так маленькое. Искусственное ограничение, которое не приносит никакой пользы, но потенциально может принести много вреда.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    это явно дает гибкость
    Наоборот, это даёт жёсткость. Гибкость -- это то, что предлагаю я.


    Цитата Сообщение от SuperMax Посмотреть сообщение
    и сохраняет полную совместимость с легаси
    Мой вариант -- тоже сохраняет полную совместимость.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    к примеру новое ПО использует штатный видеорежим, и штатные палитры
    Напоминаю, что штатно в БК НЕТ программного выбора видеорежима. Вообще нет. Это не УКНЦ.

  9. #119
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    834
    Спасибо Благодарностей отдано 
    172
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    155 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    В смысле? Что тут пояснять? rgb = palette[colorIndex + paletteOffset];
    оно еще проще:

    цвет на выходе = VideoModeOffset + PaletteOffset + ColorIndex ;


    Бесполезностью. Бессмысленная трата адресного пространства палитр, которое и так маленькое. Искусственное ограничение, которое не приносит никакой пользы, но потенциально может принести много вреда.
    поясни в чем ограничение


    Напоминаю, что штатно в БК НЕТ программного выбора видеорежима. Вообще нет. Это не УКНЦ.
    штатно - нет и это недостаток который я устраняю
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  10. #120
    Activist
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    382
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    55 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    1. есть ли готовый код определения типа БК ?
    Есть, классика - запись в регистр 177662:
    Код:
    BK10=0  ;флаг машины БК10
    BK11=1  ;флаг машины БК11
            mov #bk10, @#4
            mov #40000, @#177662    ;на БК10 будет trap to 4
            mov #BK11, Machine
            br go_next
    bk10:   mov #BK10, Machine
    go_next: ...
    Цитата Сообщение от SuperMax Посмотреть сообщение
    или есть еще варианты ?
    обычная БК11М с отключаемым монитором, в принципе и обычная БК11 с отключаемым монитором, т.к. это - необходимая доработка для работы с любым контроллером АльтПро. (то, что на БК11 без М работать с контроллерами АльтПро неудобно и сложно, но можно, другой вопрос)

Страница 12 из 14 ПерваяПервая ... 891011121314 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 37
    Последнее: 16.04.2019, 21:21
  2. Ответов: 66
    Последнее: 03.05.2014, 14:58
  3. продам бк 0011м
    от alexsan в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 04.02.2012, 18:17
  4. Ремонт БК-0011М
    от Gryphon в разделе БК-0010/0011
    Ответов: 31
    Последнее: 03.05.2010, 10:53
  5. Куплю БК-0011М!
    от Murzik в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 12.04.2010, 08:22

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •