реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> вопрос по 7 сегментному дисплею, ISE Spartan 3e Bypass2
Glement
сообщение Mar 5 2017, 01:39
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



У меня есть .sch которому вводишь 2 2байтовых числа и он выводит ответ на 7 сегментовый дисплей в 16 коде.
то есть при 11*11 он выведет 9(не затрагивая остальные)
но я например хочу сделать что бы он перемножал 2 байтовое с 3 байтовым
и тогда нужно использовать два дисплея (всего их там 4) 8888
Так вот вопрос как мне сказать что вывод этой коробочки в схеме я хочу на один дисплей а другой коробочки на другой дисплей ?
ISE WebPack Spartan3e Bypass2
Прикрепленные файлы
Прикрепленный файл  file.zip ( 27.21 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 05:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



очевидно надо указать палочки подключенияsm.gif. Каждая коробочка имеет свои выходные палочки для соединения. Надо найти специальный файлик и написать какие палочки от какой коробочки на какие светилочки подключить. Файлик ucf завется.

Одно меня беспокоит почему 11 * 11 = 9, и кого это девятка не затрагивает, но думаю это тайна мира коробочек.


короче пины надо назначить в файле пользовательских констрайнов
Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 11:17
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 06:38) *
очевидно надо указать палочки подключенияsm.gif. Каждая коробочка имеет свои выходные палочки для соединения. Надо найти специальный файлик и написать какие палочки от какой коробочки на какие светилочки подключить. Файлик ucf завется.

Одно меня беспокоит почему 11 * 11 = 9, и кого это девятка не затрагивает, но думаю это тайна мира коробочек.


короче пины надо назначить в файле пользовательских констрайнов

11*11 в двоичном
ответ в шестнадцетиричном коде
можешь скинуть пример ucf файла?
так как выводы я вывожу на ca cb cc cd и так далее. но как сменить цифру на какую я вывожу я без понятия
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 11:31
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



ох ох ох
как вы вообще без констраинов работает? А клок у вас есть? а как вы его подключили?
в файле констраинов пишут типа так

NET "clk_pin" LOC = P55;
NET "LED1" LOC = P51;
NET "LED2" LOC = P48;

в кавычках это входные - выходные порты модуля верхнего уровня, а с буквой Р это ноги самой плис.
Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 11:31
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 06:38) *
очевидно надо указать палочки подключенияsm.gif. Каждая коробочка имеет свои выходные палочки для соединения. Надо найти специальный файлик и написать какие палочки от какой коробочки на какие светилочки подключить. Файлик ucf завется.

Одно меня беспокоит почему 11 * 11 = 9, и кого это девятка не затрагивает, но думаю это тайна мира коробочек.


короче пины надо назначить в файле пользовательских констрайнов



# PlanAhead Generated physical constraints

NET "AN" LOC = E2;
NET "BN" LOC = N3;
NET "CN" LOC = G3;
NET "DN" LOC = F3;
NET "CA" LOC = L14;
NET "CB" LOC = H12;
NET "CC" LOC = N14;
NET "CD" LOC = N11;
NET "CE" LOC = P12;
NET "CF" LOC = L13;
NET "CG" LOC = M12;
NET "DP" LOC = N13;



Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 13:19
Сообщение #6





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 12:31) *
ох ох ох
как вы вообще без констраинов работает? А клок у вас есть? а как вы его подключили?
в файле констраинов пишут типа так

NET "clk_pin" LOC = P55;
NET "LED1" LOC = P51;
NET "LED2" LOC = P48;

в кавычках это входные - выходные порты модуля верхнего уровня, а с буквой Р это ноги самой плис.

вот я скинул вам как я запинил и свой проект
что мне написать что бы плата поняла на какую из 4 цифер я хочу вывести сигнал данной функции ?

Цитата(Golikov A. @ Mar 5 2017, 12:31) *
ох ох ох
как вы вообще без констраинов работает? А клок у вас есть? а как вы его подключили?
в файле констраинов пишут типа так

NET "clk_pin" LOC = P55;
NET "LED1" LOC = P51;
NET "LED2" LOC = P48;

в кавычках это входные - выходные порты модуля верхнего уровня, а с буквой Р это ноги самой плис.

вот нашел часы

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;

entity hodiny is
port(
Clk_50MHz : in std_logic;
Reset : in std_logic;

Mux_sel : out std_logic
);

end hodiny;

architecture Behavioral of hodiny is

signal tmp : std_logic_vector(17 downto 0);

begin

process (Clk_50MHz, Reset)
begin
if (Reset='1') then
tmp <= (others => '0');
elsif rising_edge(Clk_50MHz) then
tmp <= tmp + 1;
end if;
end process;
Mux_sel <= tmp(17);

end Behavioral;

ну вот скажите пожалуйста у меня есть допустим схема которая в некоторых случаях должна выводить результат на 2 дисплея
что мне написать в распиновке и если нужно где либо еще что бы она выводила на 2 дисплея ?

Сообщение отредактировал Glement - Mar 5 2017, 13:20
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 13:31
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



ААА... так у вас проблема то в другом. Вы вообще не понимаете как это работает, а не как это подключитьsm.gif)))

видите сигналы с F12, J12, M13, K14? вот именно они отвечают за то какая из ячеек будет гореть.
за один раз вы можете вывести сигнал только на одну ячейку, вернее можно и на несколько, но они будут казать одно и тоже.
Вам надо быстро быстро выбирать ячейку и показывать на ней цифру, потом выключать ее и выбирать другую с другой цифрой.
Глаз инертен и он не увидит что ячейки мигают.

Ну как я вижу вашу схему.
Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 16:05
Сообщение #8





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 14:31) *
ААА... так у вас проблема то в другом. Вы вообще не понимаете как это работает, а не как это подключитьsm.gif)))

видите сигналы с F12, J12, M13, K14? вот именно они отвечают за то какая из ячеек будет гореть.
за один раз вы можете вывести сигнал только на одну ячейку, вернее можно и на несколько, но они будут казать одно и тоже.
Вам надо быстро быстро выбирать ячейку и показывать на ней цифру, потом выключать ее и выбирать другую с другой цифрой.
Глаз инертен и он не увидит что ячейки мигают.

Ну как я вижу вашу схему.

значит мне нужно написать таймер который будет переключать сигналы ?
то есть например 8 мс горит 1 дисплей
8 мс другой
теперь осталась последняя проблема где это надо написать и как это написать?


так как я вижу часы. есть файл с сигналами для варианта с 1 дисплеем. а вот где писать код для переключения дисплеев так как я понял что у меня будет в файле 1 функция которая переключает две другие
в двух других условия для рисования числа
но я без понятия как это все реализовать
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 16:32
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



О... ну у вас впереди долгий путь если вы задаете такие вопросы.

Все что вы сейчас пишите в итоге будет схемой внутри плис. Схема разбивается на части, каждая часть делает свою работу.
Каждая часть схемы - это файл на verilog, VHLD, или графическое представление. Потом должен быть один общий файл который соединяет все части схемы воедино и подключает к ножкам микросхемы.

Мне видится что у вас должна быть модуль который принимает на вход 4 числа для отображения и на выходе управляет сигналами выбора экранчика и тем что на экранчик подать. Этот модуль постоянно перебирает экранчики и зажигает данные.

Потом вам будут нужны модули формирования входов для этого модуля. Это тоже схемы которые что-то делают, и так далее...
Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 16:48
Сообщение #10





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 17:32) *
О... ну у вас впереди долгий путь если вы задаете такие вопросы.

Все что вы сейчас пишите в итоге будет схемой внутри плис. Схема разбивается на части, каждая часть делает свою работу.
Каждая часть схемы - это файл на verilog, VHLD, или графическое представление. Потом должен быть один общий файл который соединяет все части схемы воедино и подключает к ножкам микросхемы.

Мне видится что у вас должна быть модуль который принимает на вход 4 числа для отображения и на выходе управляет сигналами выбора экранчика и тем что на экранчик подать. Этот модуль постоянно перебирает экранчики и зажигает данные.

Потом вам будут нужны модули формирования входов для этого модуля. Это тоже схемы которые что-то делают, и так далее...

я понимаю как это будет выглядеть
я не понимаю как это сделать
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 18:13
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



Я думаю надо смело использовать пункты меню по созданию файлов.

В план ахеде есть пункты добавить и создать новый файл для синтеза. Вот надо создать файлы, написать в них текст описания. Потом создать топовый файл в нем все собрать воедино. Добавить констраины, провести симуляцию, синтез и так далее...

Не сдавайтесь!

Вы на верилоге или VHDL писать умеете, кстати? Или вы хотите схемки руками рисовать?
Go to the top of the page
 
+Quote Post
Glement
сообщение Mar 5 2017, 18:56
Сообщение #12





Группа: Участник
Сообщений: 7
Регистрация: 5-03-17
Пользователь №: 95 701



Цитата(Golikov A. @ Mar 5 2017, 19:13) *
Я думаю надо смело использовать пункты меню по созданию файлов.

В план ахеде есть пункты добавить и создать новый файл для синтеза. Вот надо создать файлы, написать в них текст описания. Потом создать топовый файл в нем все собрать воедино. Добавить констраины, провести симуляцию, синтез и так далее...

Не сдавайтесь!

Вы на верилоге или VHDL писать умеете, кстати? Или вы хотите схемки руками рисовать?


пока что все чему нас научили это нарисовать схему. создать схематический символ и так далее
потом присоединить к конекторам и все

в данном задании нам дан декодер 7 сегментовый уже готовый. все что там надо было поменять это формулы для каждого из 7 сегментов .
ну и к нему присоединить умножение двух двухбайтовых чисел

а вот выводу на разные экраны и замедление часов платы не учили. там написано смотите в мануале что да как. но весь мануал сводится к описанию дисплея что никоим образом не помогает написать vhdl файл который будет выводить результат умножения на два дисплея
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 5 2017, 21:25
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



Ну тогда конец... это интеграл брать надоsm.gif

Даже не знаю что вам посоветовать, разве что найти кого-то кто сможет вам реально показать как это делается. Описать настолько издалека очень трудно.

Вам надо понять путь который проходят сигналы от ножек ПЛИС до вашего модуля и обратно. Скорее всего вам уже дан модуль верхнего уровня в графическом виде, входы выходы подключены к ногам ПЛИС и работать вам скорее всего надо именно в нем. Я предполагаю, как там реально мне не ведомо.

Если все так, то надо считать что все соединено правильно и обращаться к правильным ногам этого графического уровня, найти тактовый сигнал, найти выключатели 7 сегментного индикатора и так далее... есть контакты AN0, AN1, AN2, AN3? Какой нибудь контакт с именем CLK?
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 6 2017, 06:32
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Могу посоветовать для решения задачи о выводе на несколько индикаторов прочитать про динамическую индикацию. Вот тут очень хорошая .gif картинка, где очень понятно показан принцип работы динамической индикации : http://radioparty.ru/prog-avr/program-c/27...11-sevensegment
Хотелось бы увидеть полное описание, поставленной перед Вами задачи.
Прочитав тему, я вроде-бы понял поставленную задачу : требуется перемножить 2 числа : двухбайтовое с трехбайтовым.
Вот только изначально есть один непонятный мне момент.
Для полноценного отображения одного двухбайтового числа требуется 4 семисегментых индикатора, где каждый индикатор может отобразить числа от 0 до F в шестнадцатиричном коде. Т.е для двухбайтового числа, например b"1111_1111_1111_1111" требуется 4 индикатора, на которых будет гореть X"FFFF" (числа пишу как в языке VHDL)
Результат умножения двух двухбайтовых чисел потребует максимум 8 индикаторов (b"1111_1111_1111_1111" • b"1111_1111_1111_1111" = X"FFFE_0001").
Результат умножения двухбайтового числа с трехбайтовым потребует уже 10 индикаторов (X"FFFE_FF0001)".
Если судить по схеме, выложенной автором, плата имеет только 4 индикатора. Отсюда закономерный вопрос. Где ещё 6 индикаторов для выполнения требований поставленной задачи ?
Или же автор ошибся перепутав бит с байтом ? Из объяснения автора я так и не понял, плата имеет 4 семисегментных модуля, каждый из которых состоит из 4 индикаторов (т.е всего 16 индикаторов) или же всего 1 семисегментный модуль, который содержит всего 4 индикатора ?
Есть очень хорошее выражение, смысл которого всё больше и больше приобретает смысл по мере набора опыта. Без внятного ТЗ — результат ХЗ
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 6 2017, 11:16
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 3 641
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Glement @ Mar 5 2017, 21:56) *
пока что все чему нас научили это нарисовать схему. создать схематический символ и так далее
потом присоединить к конекторам и все

в данном задании нам дан декодер 7 сегментовый уже готовый. все что там надо было поменять это формулы для каждого из 7 сегментов .
ну и к нему присоединить умножение двух двухбайтовых чисел

а вот выводу на разные экраны и замедление часов платы не учили. там написано смотите в мануале что да как. но весь мануал сводится к описанию дисплея что никоим образом не помогает написать vhdl файл который будет выводить результат умножения на два дисплея

А что на самом деле Вы хотите?
Спихниуть лабораторку или научиться работать с ПЛИС? Только правду! Вот если второе, то могу рассказать как...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st October 2017 - 10:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016