User Tag List

Страница 24 из 25 ПерваяПервая ... 202122232425 ПоследняяПоследняя
Показано с 231 по 240 из 242

Тема: Специалист МХ2: реализация в CPLD

  1. #231

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust Посмотреть сообщение
    А что, без параллельной компиляции никак? Честно, не понимаю в чём проблема.
    Это как? Вот два параллельных процесса и они должны выполняться одновременно или по-другому параллельно.
    process(reset, u0, a_buff (1 downto 0)) -- триггер режимов
    begin
    if reset = '0' then
    m0 <= '1';
    m1 <= '1';
    elsif (u0'event and u0 = '1') then
    m0 <= a_buff (0);
    m1 <= a_buff (1);
    end if;
    end process;

    mode <= not (m0 and m1); -- режим работы: 1 - Std, 0 - MX

    process(reset, u1, data_i (0)) -- триггер
    begin
    if reset = '0' then
    ren <= '0';
    elsif (u1'event and u1 = '1') then
    ren <= data_i (0);
    end if;
    end process;
    Конечно можно переписать всё под условие. Но я не гарантирую что это будет правильно работать.

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

    Сегодня проверю две версии теста (цветные кубики, на фото как выше несколько постов назад). Одна будет скомпилирована на Web версии, другая - на Full. Будет ясно сразу. Хотя в инете пишут, что это предупреждение сообщает только о том, что при компиляции будет задействовано только одно ядро (процессора что ли?), а не два.

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

    Сегодня проверю две версии теста (цветные кубики, на фото как выше несколько постов назад). Одна будет скомпилирована на Web версии, другая - на Full. Будет ясно сразу. Хотя в инете пишут, что это предупреждение сообщает только о том, что при компиляции будет задействовано только одно ядро (процессора что ли?), а не два:
    означает, что Quratus II использует одно ядро. Это не займет много времени для такого простого дизайна

  2. #232

    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    931
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    167
    Поблагодарили
    81 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    fifan, параллельная компиляция это не исполнение. Просто при компиляции будет задействовано только одно ядро. Не настолько сложный проект, чтобы это было критично.

  3. #233

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо проверю свою догадку. По крайней мере я заметил. что откомпелированный на Full версии проект работал сразу.

    Когда-то, лет 5 назад, совместно с Ewgeny7 велись работы первого Специалиста на плис. И тогда я заметил, что после n-го количества компиляций у меня проект не запускался - тёмный экран. Хотя тоже самое у Ewgeny7 работало. Но стоило зашить просто файл через программатор (без компиляции) - всё работало.
    Последний раз редактировалось fifan; 02.09.2019 в 09:36.

  4. #234
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Когда-то, лет 5 назад, совместно с Ewgeny7 велись работы первого Специалиста на плис. И тогда я заметил, что после n-го количества компиляций у меня проект не запускался - тёмный экран. Хотя тоже самое у Ewgeny7 работало. Но стоило зашить просто файл через программатор (без компиляции) - всё работало.
    Это говорит лишь о том, что проект ты свой не профилировал и он работал на грани. Почаще смотри в TimeQuest и подтягивай свой скилл в синхронном дизайне.

  5. #235

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Решил откатиться назад и начать с малого. Первое фото - не мой проект вывода изображения при 40 МГц. Второе фото - просто тестовые полоски, проект собственного построения. Третье фото - ввод данных просто с шин данных - соответственно цветной шум. Необходимо теперь перейти ко второй плис и проверить управление ОЗУ.

    Последний раз редактировалось fifan; 03.12.2021 в 08:50.

    Этот пользователь поблагодарил fifan за это полезное сообщение:

    Xrust(03.09.2019)

  6. #236

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уф, как мне тяжко. Никак нет изображения с плисины касательно картинки Специалиста. Я склоняюсь, что неверно работают двухнаправленные шины d, md и cd. Соответственно: шина данных процессора, шина данных ОЗУ и шина данных ОЗУ цвета. Привёл описание этих шин. Далее приведены присвоения при вызовы процедуры от HardWareMan'а . Эта процедура синхрогенератор/видеогенератор и т.п.
    md_in <= d when (ram_n = '0' and wr = '0') else "11111111"; -- данные ОЗУ графика
    cd_in <= d when (mode = '1' and u1 = '1' and wr = '0') else "00000" & ncb & ncr & ncg when (mode = '0' and wr = '0') else "00000000"; -- данные ОЗУ цвет
    md <= d when (ram_n = '0' and wr = '0') else "ZZZZZZZZ"; -- шина данных ОЗУ
    cd <= cd_in when (sc = '0' and clock = '1' and wr = '0') else "ZZZZZZZZ"; -- шина данных ОЗУ цвета
    d <= md when (ram_n = '0' and rd = '0') else "ZZZZZZZZ"; -- шина данных процессора

    MX2: MX2_CPLD_VID -- MX2 Address Chipset
    port map(
    Clk => clk, -- тактирование 40 МГц
    nRES => reset_in, -- кнопка сброса
    Fast => '0', -- сигнал скорости 2,5 МГц
    MX => mode, -- выбор режима MX
    A => a_buff, -- входной адрес от процессора
    MD => md_in, -- данные ОЗУ графика
    CD => cd_in, -- данные ОЗУ цвет
    nF1 => f1_n, -- инверсная фаза F1 для ВМ80
    nF2 => f2_n, -- инверсная фаза F2 для ВМ80, тактовая для Z80
    RST => reset, -- выход положительного синхронного уровня сброса
    SnC => sc, -- арбитраж обращения
    HSync => hs, -- горизонтальная синхронизация
    VSync => vs, -- вертикальная синхронизация
    MA => ram, -- адрес на ОЗУ
    R => r, -- пиксели красный
    G => g, -- пиксели зеленый
    B => b -- пиксели синий
    );
    Пояснение: ram_n - выборка основного ОЗУ,
    wr - сигнал чтения,
    mode - режим (0-Std, 1-MX),
    u1 - выборка контроллера цвета,
    ncb, ncr, ncg - сигналы цвета в режиме Std
    sc - арбитр синхрогенератор/адрес,
    clock - частота 40 МГц,
    rd - сигнал чтения.

    Пока задействовал мапер стандартного (Std) Специалиста. В ПЗУ зашил тест Рюмика. Если надо приведу исходники.
    Последний раз редактировалось fifan; 27.09.2019 в 16:43.

  7. #237

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    (Я уже зае...) Мне уже надоело отлаживать проект. Я не поленился и прошил в обе плисины схемный ввод (да рисовал каждый элемент!) и ноль выхода! Теперь даже нет сигнала на VGA монитор. Может у меня действительно одна или две плисины дохлые, а может ещё и срамина. Откликнитесь, если есть, владельцы платы с запаянными микросхемами (ОЗУ, ПЛИС). Может у вас заработают проекты. У меня сейчас ощутимо греются основное ОЗУ и 1-я плисина.

    Пока беру безрочную паузу, и так полгода с этой платой трахаюсь.

  8. #238
    HardWareMan
    Гость

    По умолчанию

    Я бы сделал это за 1 вечер, но у меня нет такой платы.

  9. #239

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не забросил проект, я не хочу писать сюда плохие результаты. Перепроверил несколько проектов - результат один - не верное изображение.

    Вопрос к HardWareman'у: что может быть не правильно. С шинами данных вроде обошёлся как ты советовал:
    SnC=1 => Принудительное чтение ОЗУ (NWR=1, NRD=0, развязка по шине данных от процессора),
    SnC=0 => Обращение процессора к ОЗУ (NWR и NRD согласно типу обращения).

    process(clock, sel, wr_n, rd_n, ram_n, cr, cg, cb, cd, md, d)
    begin
    if (clock'event and clock = '0') then
    if (rd_n = '0' and sel = '1' and ram_n = '0') then -- принудительное чтение ОЗУ
    md_buff <= md;
    cd_buff <= cd;
    elsif (wr_n = '0' and sel = '0' and ram_n = '0') then -- запись в ОЗУ из процессора
    md <= d;
    elsif (rd_n = '0' and sel = '0' and ram_n = '0') then -- чтение из ОЗУ в процессор
    d <= md;
    cd <= '1' & not cr & not cg & not cb & "1111";
    else
    d <= "ZZZZZZZZ";
    md <= "ZZZZZZZZ";
    cd <= "ZZZZZZZZ";
    end if;
    end if;
    end process;
    Для взаимодействия с твоей процедурой всё вроде описал правильно:
    MX2: MX2_CPLD_VID
    port map(
    Clk => clock, -- входная частота 40 МГц
    nRES => res_in, -- сигнал сброса с кнопки
    Fast => fast, -- скорость Norma/Turbo
    MX => mode, -- Standard/MX
    A => a, -- шина данных процессора
    MD => md_buff, -- данные ОЗУ графика
    CD => cd_buff, -- данные ОЗУ цвет
    nF1 => nf1, -- инверсная фаза F1 для ВМ80
    nF2 => nf2, -- инверсная фаза F2 для ВМ80, тактовая для Z80
    RST => reset, -- выход положительного сброса
    SnC => sel, -- арбитраж обращения
    MA => ma, -- шина адреса ОЗУ
    R => red, -- выход сигнала красного цвета
    G => green, -- выход сигнала зелёного цвета
    B => blue, -- выход сигнала синего цвета
    HSync => hs, -- горизонтальная синхронизация
    VSync => vs -- вертикальная синхронизация
    );
    Во второй ПЛИС я прошил проект пока Std маппера. В ПЗУ зашит тест Рюмика. Могу привести весь текст проекта, но он не значительно больше приведённого выше текста. Легенда:
    md_buff и cd_buff - данные о пикселах и цвете, считываемые с ОЗУ,
    sel и SnC - одно и тоже, арбитраж обращения,
    cr, cg, cb - данные о цвете, снимаются со старшей тетрады порта С ВВ55.
    ram_n - выборка основного ОЗУ, сигнал снимается со 2-й ПЛИС,
    md, d и cd - шины данных соответственно: данные с ОЗУ, шина данных процессора и цвет с ОЗУ.
    Последний раз редактировалось fifan; 12.09.2022 в 18:11.

  10. #240

    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сорри за некропостинг

    Цитата Сообщение от fifan Посмотреть сообщение
    Во второй плисине поменьше на много предупреждений, но я там ещё не вставил диспетчер верхних адресов RAM-диска и эмулятор порта программатора. Я уже писал, что ради одного применяемого сигнала KA0 (R5) я решил не ставить реальную ВВ55, а эмулировать её.
    Этот сигнал используется в одном месте в Ramfos, в функции вывода звука, в цикле ожидания окончания звучания (пока выход ВИ53 не станет лог. 1). По-моему, это какой-то дикий костыль. Не проще ли в цикле читать состояние счётчика того канала ВИ53 и сравнивать с нулем? Или что-то ещё кроме рамфос использует это?

Страница 24 из 25 ПерваяПервая ... 202122232425 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 135
    Последнее: 02.12.2021, 22:50
  2. Специалист МХ2. Сборка на плате VER. 2.2
    от vernigor в разделе Специалист
    Ответов: 20
    Последнее: 06.05.2017, 07:51
  3. Ответов: 65
    Последнее: 14.11.2014, 08:05

Ваши права

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