SPARTAN 3E семисегмент(перевод чисел)
SPARTAN 3E семисегмент(перевод чисел)
необходимо написать на xilinx программу для перевода из двоичной системы в десятичную и наоборот..запуская программу мы должны увидеть значения на семисегменте микросхемы SPARTAN 3E...как это сделать?подскажите пожалуйста(((
- Реклама
- SubDia
- Держит паяльник хвостом
- Сообщения: 995
- Зарегистрирован: Сб апр 02, 2011 17:59:22
- Откуда: Город-герой Севастополь
Re: SPARTAN 3E семисегмент(перевод чисел)
Вы, пожалуйста, ТЗ-то подкорректируйте. Вам на VHDL или на Verilog?
Нужно вывести на семисегментник какие-то числа, так получается?
Нужно вывести на семисегментник какие-то числа, так получается?
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

Re: SPARTAN 3E семисегмент(перевод чисел)
Для тех кто в танке, повторяю - на Spartanе.
- ой не удержался.
если на VHDL, то можете почитать мой проект http://haos.homeip.net/clock9572/index.html . Практически вам нужен самый первый модуль bin2seg - преобразует двоичный код в семисегментный.
если на VHDL, то можете почитать мой проект http://haos.homeip.net/clock9572/index.html . Практически вам нужен самый первый модуль bin2seg - преобразует двоичный код в семисегментный.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: SPARTAN 3E семисегмент(перевод чисел)
ОФФтоп
Что вы лезете со своими языками описания аппаратуры? Сказано же
По теме
Найдите проект декодера в сети и адаптируйте под себя. Я так понимаю, показывать будете натурно на отладочнике - заодно и схему поищите. Потому как переделывать часть проекта под нее придется
Что вы лезете со своими языками описания аппаратуры? Сказано же
Ну и фиг с ним что семисегмента микросхемы нет у спартана, а так же у остальных плис3kivan писал(а):...должны увидеть значения на семисегменте микросхемы SPARTAN 3E..
По теме
Найдите проект декодера в сети и адаптируйте под себя. Я так понимаю, показывать будете натурно на отладочнике - заодно и схему поищите. Потому как переделывать часть проекта под нее придется
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: SPARTAN 3E семисегмент(перевод чисел)
давайте VHDL,проверю хоть,а так надо чтобы на семисегментном индикаторе показывало числа,для примера,преобразователь из двоичного в 10й,цифру 12 должно показывать не 1100,а 1и 2 на индикаторах,следовательно 0001 0010,на схеме управления насколь понял надо мультиплексоры как то поменять,но как не знаю,чтобы сначала старшие биты отхватывало,потом младшие,следовательно для преобразователя с 10 в 2 код надо чтобы 0001 0010 превращался в 1100 и показывало в двоичном значении,т.е. букву СSubDia писал(а):Вы, пожалуйста, ТЗ-то подкорректируйте. Вам на VHDL или на Verilog?
Нужно вывести на семисегментник какие-то числа, так получается?
- Вложения
-
- плис.JPG
- схема наша
- (25.56 КБ) 790 скачиваний
- Реклама
- SubDia
- Держит паяльник хвостом
- Сообщения: 995
- Зарегистрирован: Сб апр 02, 2011 17:59:22
- Откуда: Город-герой Севастополь
Re: SPARTAN 3E семисегмент(перевод чисел)
Ай, не угадали. Verilog, так что не помогу. Может, ребята вон подскажут (хотя, вроде и так подсказали).3kivan писал(а):давайте VHDL
Дальше по тексту ничего толком не понятно.((
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

Re: SPARTAN 3E семисегмент(перевод чисел)
кто знает подскажите пожалуйста..
Re: SPARTAN 3E семисегмент(перевод чисел)
Полтора года назад тут был один студент... http://radiokot.ru/forum/viewtopic.php? ... hilit=VHDL . Тоже нужно было. Но тот вроде сообразил, что двоичное надо сначала преобразовать в БКД. Правда так и не поняли тогда - сдал или нет.
Кстати, пробовал свой последний исходник из той темы применить в одной конструкции. бехивиоральная симуляция идёт, а вот синтез ни в какую - нету, говорит у меня такого деления. дели или на 2, или вообще отстань. А, скормить хотел coolrunner-у.
Дык это, топикстартер. Покажи, что получилось. Нам то курсачи лень делать. Ну если явную плюху увидим, скажем.
Я так понимаю, охота на тублерах нащелкать двоичное число и на индикаторе увидеть число?
Ну, первре, что потребуется, действительно, из двоичного получить БКД. А чтобы на индикатор вывести - там наверняка динамическую индикацию делать надо будет, или как вы сказали - мультиплексор. А за мультиплексором - преобразователь двоичного в семисегментный. за час можно написать отладить и оттестировать. с перекурами.
Кстати, пробовал свой последний исходник из той темы применить в одной конструкции. бехивиоральная симуляция идёт, а вот синтез ни в какую - нету, говорит у меня такого деления. дели или на 2, или вообще отстань. А, скормить хотел coolrunner-у.
Дык это, топикстартер. Покажи, что получилось. Нам то курсачи лень делать. Ну если явную плюху увидим, скажем.
Я так понимаю, охота на тублерах нащелкать двоичное число и на индикаторе увидеть число?
Ну, первре, что потребуется, действительно, из двоичного получить БКД. А чтобы на индикатор вывести - там наверняка динамическую индикацию делать надо будет, или как вы сказали - мультиплексор. А за мультиплексором - преобразователь двоичного в семисегментный. за час можно написать отладить и оттестировать. с перекурами.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: SPARTAN 3E семисегмент(перевод чисел)
доступ к микросхеме один раз в неделю..если уж проверять то с готовой прогой..написав прогу еще не понятно будет ли она ваще показывать то что необходимо=((
Re: SPARTAN 3E семисегмент(перевод чисел)
нам полагается сейчас расплакаться? И еще, не знаю, как вам читают этот курс (и что за курс) - в программируемую логику не программируют программу. То что вы пишите - не программа. А описание конфигурации, описание устройства. Программы у микроконтроллеров, у микропроцессоров - они выполняют программы. А VHDL описывает, как должно вести себя устройство или из чего оно состоит (вам же рассказывали про структурное и поведенческое описание?).
Хм, глянул по каталогам, ваша платка напоминает Agilent BASYS2. Надо бы купить себе в подарок - поиграться? Хоть и раза в два дороже, чем платка была с Coolrunner, но зато всё нужное на борту. Хотя сто баксов на дороге не валяются.
Правда, плохо представляю, как вы её программируете. Скажем, чтобы сделать динамику на индикаторе, вам доступна только частота 25МГц. Чтобы её применить вам её еще поделить надо. Возможно у Спартана есть делитель частоты, но его применение требует отдельного изучения.
С другой стороны - всю логику вы можете отладить на симуляторе, а при доступе к телу придется только повозиться с файлом констрайнтов, чтобы всё на нужные выводы завести.
Хм, глянул по каталогам, ваша платка напоминает Agilent BASYS2. Надо бы купить себе в подарок - поиграться? Хоть и раза в два дороже, чем платка была с Coolrunner, но зато всё нужное на борту. Хотя сто баксов на дороге не валяются.
Правда, плохо представляю, как вы её программируете. Скажем, чтобы сделать динамику на индикаторе, вам доступна только частота 25МГц. Чтобы её применить вам её еще поделить надо. Возможно у Спартана есть делитель частоты, но его применение требует отдельного изучения.
С другой стороны - всю логику вы можете отладить на симуляторе, а при доступе к телу придется только повозиться с файлом констрайнтов, чтобы всё на нужные выводы завести.
Последний раз редактировалось uldemir Вт май 08, 2012 18:06:01, всего редактировалось 1 раз.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: SPARTAN 3E семисегмент(перевод чисел)
Только не Agilent, а Digilentплатка напоминает Agilent BASYS2.
Есть такая в наличии. К ней лучше брать и плату "расширения", потому как разъем на 50 контактов выходит едва ли не дороже размещаемого на плате.
Генератор там на 50 МГц.
Что касается делителя частоты - то проще для студентов делать обычными счетчиками(за одно и попрактикуются)
По теме - автор выкладывайте свой код, если его писали. Если не описывали - бегом за редактор. Мы только со стороны поможем советами
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: SPARTAN 3E семисегмент(перевод чисел)
Это у Nexys2 страшный разъём. А, и вправду Nexys2 - там есть приведенная ТС картинка. Вообще-то шикарная плата. 32М памяти... это... что-то мощное. И это студиозусы используют, чтобы лампочками моргать? А разъём на фарнеле HRS (HIROSE) - FX2-100S-1.27DSL(71) - RECEPT, 1.27MM, R/A, 100WAY стоит всего 10 долларов. Или это не он? Нет, для начала возьму платку по-скромнее.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: SPARTAN 3E семисегмент(перевод чисел)
разобрался с преобразователем двоично-десятичного кода в семисегментный, а вот как сделать с десятичного в двоичный??
Re: SPARTAN 3E семисегмент(перевод чисел)
из какого десятичного? из БКД?
так элементарно (гораздо проще чем наоборот) просто сумма чисел A*100 + B*10 + C, Если A-сотни, B-десятки и C - единицы. Умножение делается элементарно. Например на 10 ("1010") + число суммируем с самим собой два раза сдвинутым влево и результат еще раз сдвигаем влево. Ну как в столбик. На 100 ("1100100") аналогично сумма несдвинутого и сдвинутых на 3 и 4, и следом еще сдвигаем на 2. Логика понятна?
так элементарно (гораздо проще чем наоборот) просто сумма чисел A*100 + B*10 + C, Если A-сотни, B-десятки и C - единицы. Умножение делается элементарно. Например на 10 ("1010") + число суммируем с самим собой два раза сдвинутым влево и результат еще раз сдвигаем влево. Ну как в столбик. На 100 ("1100100") аналогично сумма несдвинутого и сдвинутых на 3 и 4, и следом еще сдвигаем на 2. Логика понятна?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: SPARTAN 3E семисегмент(перевод чисел)
у меня вопрос по вашему проекту.,у вас там есть преобразователь 2-10 и 10-2 в семисегмент, мне бы интересно посмотреть схему управления преобразования на xilinx,сам код понятен...uldemir писал(а):Для тех кто в танке, повторяю - на Spartanе.- ой не удержался.
если на VHDL, то можете почитать мой проект http://haos.homeip.net/clock9572/index.html . Практически вам нужен самый первый модуль bin2seg - преобразует двоичный код в семисегментный.
Re: SPARTAN 3E семисегмент(перевод чисел)
Не понял, что вы хотите. Схема как таковая не составляется. Модуль описывается, скажем, поведенческой моделью, а дальше уже работа САПРа из доступных в заданном кристалле элементов соорудить необходимое. При желании, можно у САПРа попросить вывести RTL schematic, но это довольно далеко от вменяемого для человека представления.
А по поводу проекта там есть только преобразование двоичного в семисегментный. Конечно, он также попадает под определение преобразователя бинарно-кодированного-десятичного в семисегментный, но это частности.
А по поводу проекта там есть только преобразование двоичного в семисегментный. Конечно, он также попадает под определение преобразователя бинарно-кодированного-десятичного в семисегментный, но это частности.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: SPARTAN 3E семисегмент(перевод чисел)
так и не понял как сделать на vhdl преобразователь из десятичного в двоичный,напишите пожалуйста что и как=((все время ошибки выдает=((uldemir писал(а):Не понял, что вы хотите. Схема как таковая не составляется. Модуль описывается, скажем, поведенческой моделью, а дальше уже работа САПРа из доступных в заданном кристалле элементов соорудить необходимое. При желании, можно у САПРа попросить вывести RTL schematic, но это довольно далеко от вменяемого для человека представления.
А по поводу проекта там есть только преобразование двоичного в семисегментный. Конечно, он также попадает под определение преобразователя бинарно-кодированного-десятичного в семисегментный, но это частности.
Re: SPARTAN 3E семисегмент(перевод чисел)
skipped
Последний раз редактировалось uldemir Ср май 16, 2012 23:36:46, всего редактировалось 1 раз.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: SPARTAN 3E семисегмент(перевод чисел)
спасибо..проверю завтра в универе...отпишусь..uldemir писал(а):И всё это суммируется. Ну, если по-тупому, то это будет выглядеть примерно так. на синтаксис и грамматику синтезируемость не проверял.Код: Выделить всё
000000cccc - единицы 00000bbbb0 - десятки * 2 000bbbb000 - десятки * 8 т.е. b*2+b*8=b*10 - правильно? 0000aaaa00 - cотни * 4 0aaaa00000 - сотни * 32 aaaa000000 - сотни * 64 a*64+a*32+a*4=a*100.Возможно, спартан сьел бы и просто a(3 downto 0)*100+b(3 downto 0)*10+c(3 downto 0);, там же есть аппаратный умножитель. Но мне сейчас негде проверить, а сам я в такой сложной арифметике еще не силён - могу напутаться с типами данных.Код: Выделить всё
Entity bcd2bin is Port ( a : in std_logic_vector (3 downto 0); b : in std_logic_vector (3 downto 0); c : in std_logic_vector (3 downto 0); result : out std_logic_vector (9 downto 0)); architecture behavioral of bcd2bin is signal sum1 : std_logic_vector (9 downto 0); signal sum2 : std_logic_vector (9 downto 0); signal sum3 : std_logic_vector (9 downto 0); signal sum4 : std_logic_vector (9 downto 0); signal sum5 : std_logic_vector (9 downto 0); signal sum6 : std_logic_vector (9 downto 0); begin sum1 (9 downto 0) <= "00000" & c (3 downto 0); sum2 (9 downto 0) <= "0000" & b (3 downto 0) & '0'; sum3 (9 downto 0) <= "000" & b (3 downto 0) & "000"; sum4 (9 downto 0) <= "0000" & a (3 downto 0) & "00"; sum5 (9 downto 0) <= '0' & a(3 downto 0) & "00000"; sum6 (9 downto 0) <= a(3 downto 0) & "000000"; result <= sum1 + sum2 + sum3 + sum4 +sum5 +sum6; end behavioral;
Re: SPARTAN 3E семисегмент(перевод чисел)
почему то ошибку выдает=((см. скрин)uldemir писал(а):И всё это суммируется. Ну, если по-тупому, то это будет выглядеть примерно так. на синтаксис и грамматику синтезируемость не проверял.Код: Выделить всё
000000cccc - единицы 00000bbbb0 - десятки * 2 000bbbb000 - десятки * 8 т.е. b*2+b*8=b*10 - правильно? 0000aaaa00 - cотни * 4 0aaaa00000 - сотни * 32 aaaa000000 - сотни * 64 a*64+a*32+a*4=a*100.Возможно, спартан сьел бы и просто a(3 downto 0)*100+b(3 downto 0)*10+c(3 downto 0);, там же есть аппаратный умножитель. Но мне сейчас негде проверить, а сам я в такой сложной арифметике еще не силён - могу напутаться с типами данных.Код: Выделить всё
Entity bcd2bin is Port ( a : in std_logic_vector (3 downto 0); b : in std_logic_vector (3 downto 0); c : in std_logic_vector (3 downto 0); result : out std_logic_vector (9 downto 0)); architecture behavioral of bcd2bin is signal sum1 : std_logic_vector (9 downto 0); signal sum2 : std_logic_vector (9 downto 0); signal sum3 : std_logic_vector (9 downto 0); signal sum4 : std_logic_vector (9 downto 0); signal sum5 : std_logic_vector (9 downto 0); signal sum6 : std_logic_vector (9 downto 0); begin sum1 (9 downto 0) <= "00000" & c (3 downto 0); sum2 (9 downto 0) <= "0000" & b (3 downto 0) & '0'; sum3 (9 downto 0) <= "000" & b (3 downto 0) & "000"; sum4 (9 downto 0) <= "0000" & a (3 downto 0) & "00"; sum5 (9 downto 0) <= '0' & a(3 downto 0) & "00000"; sum6 (9 downto 0) <= a(3 downto 0) & "000000"; result <= sum1 + sum2 + sum3 + sum4 +sum5 +sum6; end behavioral;
- Вложения
-
- ё10-2.JPG
- ошибка
- (123.72 КБ) 725 скачиваний


