Перейти к содержанию
    

WingLion

Участник*
  • Постов

    29
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о WingLion

  • Звание
    Участник
    Участник
  • День рождения 30.05.1966

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

1 251 просмотр профиля
  1. http://tinyvga.com/vga-timing - кто понимает - сборная инфа по VGA времянкам
  2. отзеркалить шрифт то не проблема программно прямо при выводе символов. Надо только биты переставить в обратном порядке. Если надо, это можно и предварительно с массивом фонта проделать. Это задачка для студента первого курса... не больше.
  3. Тут все просто. 5-разрядный код - это числа от 0 до 31. И фактически делается та самая двоично-десятичная коррекция, но не для целого байта, а только для конкретного 5-битного числа и из конкретных диапазонов, выбранных if-ами. И на выходе получается 8-битный код, половинки которого соответствуют нужным цифрам. конкретно, числа из диапазона 30..31 надо превратить в 30h..31h, т.е. в 48..49 а это есть +18 п.с. modelsim может ругаться, если у него не все функции определены. conv_std_logic_vector - вроде, из Xilinx-овских библиотек. Oпределить можно достаточно просто. что-то вроде такого: function conv_std_logic_vector(x : integer; razr : integer) return std_logic_vector is variable temp : std_logic_vector(razr-1 downto 0); begin -- convert integer to logic_vector temp <= (others => '0'); temp <= temp + x; return temp; end; Не уверен только на счет выходного аргумента. Возможно будет ругаться за неопределенный вектор на выходе. проще вместо q<=conv_std_logic_vector(conv_integer(d)+18, 8) сразу писать q<="00000000" + (conv_integer(d)+18); и аналогично в других местах будет то же самое.
  4. A это и не алгоритм вовсе. А всего лишь ВАРИАНТ РЕАЛИЗАЦИИ, o чем я сразу сказал. И гибкость тут ни при чем. Достаточно взглянуть на название подфорума, чтобы понять, что всякие DAA тут просто оффтопик.
  5. Зачем мне что-то смотреть, если я собственными лапами делал такие преобразователи десятками и программно и в железках? И спор раздувать незачем. Смысла спорить нет. Я ведь упертый самодур, кодящий на AHDL/VHDL с 95-го года.
  6. (не двоично)-десятичного в современных компьютерах и не бывает. Про изящество я ни слова не утверждал. Я показывал всего лишь принцип, к которому сводится любой вариант.
  7. А если возможности отказаться нет принципиально, как в данному случае? Преобразование в десятичное представление из двоичного ничем кроме деления не получишь. Будет это деление сделано таблично или через вычитание или через решение дифура пятого порядка, оно останется вычислением деления. Даже, если ваша схема будет угадывать цифры десятичного представления, цифра 8 не перестанет быть результатом целочисленного деления числа 81 на 10.
  8. Скорее неправильно, потому что 3.3 вольтовые выходы наверняка будут конфликтовать с 1.8 вольтовыми даже когда они в Z. Я бы сделал так, чтобы управляющий выход влиял на стабилизатор напряжения для I/O одного банка, переключая его с 3.3 на 1.8, когда необходимо. Быть может, и на 2.5 понадобятся выходы, тогда просто третье напряжение на стабилизаторе сделать Проще всего, имхо, LDO стабилизатор, у которого резисторы обратной связи, устанавливающие напряжение на выходе, переключаются некоторыми выводами ПЛИС.
  9. Каскад из дешифраторов - это, насколько я понимаю, построение большого дешифратора на основе маленьких. Берете дешифратор 2->4 рядом ставите еще 4 дешифратора 2->4, каждый выход первого подключаете на вход разрешения одного из следующих четырех, входы выбора четырех последних соединяете на один вход и объединяете его в одну шину с входами выбора первого дешифратора. Получаете дешифратор 4 -> 16.
  10. есть такая структура в VHDL - называется constant. Пишете (среди описания сигналов в секции архитектуры): constant bebe : need_type := значение1 ; constant xexe : type_new := значение2 ; и пульзуетесь этими константами в коде словно сигналами, имеющими нужное значение. Если надо, чтобы константы виделись во многих файлах - записывайте их в VHDL-пакет и подключайте его к нужным исходникам в самом начале.
  11. В таком случае реконфигурация делается только одним способом - тупым раскаленным предметом - а именно, перепайкой ПЛИС. Отпаиваете старую, запаиваете новую с новой конфигурацией. п.с. перечитываю еще раз пост, пытаясь понять, что же тут написано? Если имеется в виду отказ программатора в прошивке, можно попытаться прошивать одно и то же снова и снова (умные программаторы могут и не позволить такое сделать), пока непережегшаяся перемычка не сожжется, но тут нет гарантии, что такая перегрузка по цепям программирования не выжгет что-нибудь лишнее.
  12. variable q1 : integer; variable q2 : integer; q1 <= conv_integer(x_in) / 10 ; -- первая цифра q2 <= conv_integer(x_in) - (q1 * 10); -- вторая цифра -- реализация деления и умножения - не имеет значения для преобразования (таблично или на процессоре или еще как) и последний шаг - преобразование цифры в семисегментный код - просто две таблицы. (или одна, если извернуться с мультиплексированием). п.с. А можно и не делать деление/умножение, если важно только увидеть результат, а вывести восьмиразрядный код в шестнадцатеричном виде (две таблицы 4->7).
  13. Изворачиваться надо в поиске памяти под фреймбуфер. Если внешнюю некуда подцепить, воспользоваться внутренней памятью ПЛИС. Ее мало, но на какой-нибудь эрзац-буфер хватит, например, можно пиксели группировать по 4/8/16 штук, суммировать цвета и запоминать, а потом выводить 4/8/16 одинаковых пикселей. Для полноценного изображения фигово, но чтобы хоть что-нибудь увидеть внутренней памяти ПЛИС хватит. Формально ничего не мешает. Только переключателем напряжения питания надо бы управлять выводом из банка, у которого i/o запитано постоянно. т.е. разные банки i/o питать разными источниками (а это-то штатно предусмотрено).
  14. Глупость какая... Любой форум предназначен для общения. И никакое дополнительное общение форум угробить не может по определению.
  15. Оффтопик был, оффтопик есть, оффтопика не может не быть. Иначе форум превратится в концлагерь, куда ходить не захочется. Это я по собственному опыту говорю. Хотя, конечно, иногда и нужны жесткие(жестокие) меры, чтобы утихомирить буйных, но применять их ко всем и каждому, кто опечатался и не в ту тему не тем боком написал, было бы неправильно. На форумы, где за любую нарушенную букву пользователей казнят и банят, я принципиально не хожу. Короче, бардака допускать нельзя, но и гайки затягивать до срыва резьбы нельзя. :bb-offtopic: С наступающим Днем Победы!
×
×
  • Создать...