SPARTAN 3E семисегмент(перевод чисел)

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

в 48-й и 49-й по одному нулю не хватает. слева. Всего должно быть 10 бит. ориентируйтесь на тот стоолбик, что я написал вначале. А вот почему не идёт сумма... не знаю. Может слишком много аргументов?
Вот такая конструкция у меня работает: (взято отсюда)

Код: Выделить всё

hr_pwm <= ("00"& output) + (output & "00"); -- это типа умножение на 5
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

микросхема
Вложения
BASYS2-top-1200.jpg
схема
(198.94 КБ) 414 скачиваний
Реклама
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):в 48-й и 49-й по одному нулю не хватает. слева. Всего должно быть 10 бит. ориентируйтесь на тот стоолбик, что я написал вначале. А вот почему не идёт сумма... не знаю. Может слишком много аргументов?
Вот такая конструкция у меня работает: (взято отсюда)

Код: Выделить всё

hr_pwm <= ("00"& output) + (output & "00"); -- это типа умножение на 5
в сумме пишет ошибку :"не может иметь такого операнда в этом контексте."
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

Попробуйте написать result <= sum2+sum3; - проглотит ли если два операнда? А ищё... библиотеки подключены? типа:

Код: Выделить всё

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
Эиком - электронные компоненты и радиодетали
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):Попробуйте написать result <= sum2+sum3; - проглотит ли если два операнда? А ищё... библиотеки подключены? типа:

Код: Выделить всё

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
проглотило все после подключения библиотек..даж до суммы до 6=))а в файл ufc что прописывать?это?
NET "sw<0>" LOC="P11";
NET "sw<1>" LOC="L3";
NET "sw<2>" LOC="K3";
NET "sw<3>" LOC="B4";

NET "an<0>" LOC="K14";
NET "an<1>" LOC="M13";
NET "an<2>" LOC="J12";
NET "an<3>" LOC="F12";

NET "seg<0>" LOC="L14"; #a
NET "seg<1>" LOC="H12"; #b
NET "seg<2>" LOC="N14"; #c
NET "seg<3>" LOC="N11"; #d
NET "seg<4>" LOC="P12"; #e
NET "seg<5>" LOC="L13"; #f
NET "seg<6>" LOC="M12"; #g
Реклама
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

когда я интересовался этой платкой, на сайте digilent-а нашел совершенно готовый файл констрайнтов для этой платы. Даже не надо самому составлять. Правда сигналы тогда надо называть так, чтобы они совпадали с принятыми в документации. Кстати, в документации не нашел, а в схеме увидел, что на этой плате есть низкочастотный RC-генератор. Наверное, специально для динамической индикации.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):когда я интересовался этой платкой, на сайте digilent-а нашел совершенно готовый файл констрайнтов для этой платы. Даже не надо самому составлять. Правда сигналы тогда надо называть так, чтобы они совпадали с принятыми в документации. Кстати, в документации не нашел, а в схеме увидел, что на этой плате есть низкочастотный RC-генератор. Наверное, специально для динамической индикации.
прошивка идет через прогу adept читающий bit файл..без ucf bitовский файл не будет=(
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

не, ну естесствеено, без файла констрайнтов ничего не будет. но это уж сами... я ж не знаю, что куда вы хотите ввести и вывести. а файл вот: http://www.digilentinc.com/Products/Det ... rod=BASYS2 - самый последний давнлоад

этот RCCLK состоит из 125к и 4.7мкФ. - по моим прикидкам 500миллисекунд - 1 Герц??????? или я где-то ошибся?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

у меня есть документация по семисегменту по плате,там ясно написано что так:
NET "sw<0>" LOC="P11";
NET "sw<1>" LOC="L3";
NET "sw<2>" LOC="K3";
NET "sw<3>" LOC="B4";

NET "an<0>" LOC="K14";
NET "an<1>" LOC="M13";
NET "an<2>" LOC="J12";
NET "an<3>" LOC="F12";

NET "seg<0>" LOC="L14"; #a
NET "seg<1>" LOC="H12"; #b
NET "seg<2>" LOC="N14"; #c
NET "seg<3>" LOC="N11"; #d
NET "seg<4>" LOC="P12"; #e
NET "seg<5>" LOC="L13"; #f
NET "seg<6>" LOC="M12"; #g
но выдает ошибку:

param.ucf(17)]: NET "seg<6>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

Ну это вероятно значит, что в ВАШЕМ проекте нет такого порта. Поэтому лишние надо закомментировать, чтобы не ругалось.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):Ну это вероятно значит, что в ВАШЕМ проекте нет такого порта. Поэтому лишние надо закомментировать, чтобы не ругалось.
а что именно?что то не догнал=((ой не заметил..ошибка не одна даже..вот:

ERROR:ConstraintSystem:59 - Constraint <NET "sw<0>" LOC="P11";> [param.ucf(1)]:
NET "sw<0>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "sw<1>" LOC="L3";> [param.ucf(2)]:
NET "sw<1>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "sw<2>" LOC="K3";> [param.ucf(3)]:
NET "sw<2>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "sw<3>" LOC="B4";> [param.ucf(4)]:
NET "sw<3>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "an<0>" LOC="K14";> [param.ucf(6)]:
NET "an<0>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "an<1>" LOC="M13";> [param.ucf(7)]:
NET "an<1>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "an<2>" LOC="J12";> [param.ucf(8)]:
NET "an<2>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "an<3>" LOC="F12";> [param.ucf(9)]:
NET "an<3>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<0>" LOC="L14";>
[param.ucf(11)]: NET "seg<0>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<1>" LOC="H12";>
[param.ucf(12)]: NET "seg<1>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<2>" LOC="N14";>
[param.ucf(13)]: NET "seg<2>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<3>" LOC="N11";>
[param.ucf(14)]: NET "seg<3>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<4>" LOC="P12";>
[param.ucf(15)]: NET "seg<4>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<5>" LOC="L13";>
[param.ucf(16)]: NET "seg<5>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "seg<6>" LOC="M12";>
[param.ucf(17)]: NET "seg<6>" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

Ну это значит, что в верхнем уровне вашего проекта должны быть входы/выходы с такими названиями. В том модуле что я нарисрвал, есть только a<0:3>, b...., c.... и result<0:9>. Как видите, никаких sw, seg итп. так что надо решить, что и как делать. где вы хотите вводить параметны, где хотите выводить. Если хотите вывести result на светодиоды, тогда в ucf пишите

Код: Выделить всё

NET "result<7>" LOC = "G1" ; # Bank = 3, Signal name = LD7
NET "result<6>" LOC = "P4" ; # Bank = 2, Signal name = LD6
NET "result<5>" LOC = "N4" ;  # Bank = 2, Signal name = LD5
NET "result<4>" LOC = "N5" ;  # Bank = 2, Signal name = LD4
NET "result<3>" LOC = "P6" ; # Bank = 2, Signal name = LD3
NET "result<2>" LOC = "P7" ; # Bank = 3, Signal name = LD2
NET "result<1>" LOC = "M11" ; # Bank = 2, Signal name = LD1
NET "result<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0
Правда, 8-й и 9-й разряд не знаю куда вывести - светодиоды кончились.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):Ну это значит, что в верхнем уровне вашего проекта должны быть входы/выходы с такими названиями. В том модуле что я нарисрвал, есть только a<0:3>, b...., c.... и result<0:9>. Как видите, никаких sw, seg итп. так что надо решить, что и как делать. где вы хотите вводить параметны, где хотите выводить. Если хотите вывести result на светодиоды, тогда в ucf пишите

Код: Выделить всё

NET "result<7>" LOC = "G1" ; # Bank = 3, Signal name = LD7
NET "result<6>" LOC = "P4" ; # Bank = 2, Signal name = LD6
NET "result<5>" LOC = "N4" ;  # Bank = 2, Signal name = LD5
NET "result<4>" LOC = "N5" ;  # Bank = 2, Signal name = LD4
NET "result<3>" LOC = "P6" ; # Bank = 2, Signal name = LD3
NET "result<2>" LOC = "P7" ; # Bank = 3, Signal name = LD2
NET "result<1>" LOC = "M11" ; # Bank = 2, Signal name = LD1
NET "result<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0
Правда, 8-й и 9-й разряд не знаю куда вывести - светодиоды кончились.
необходимо вводить на sw и выводить на семисегмент.
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

а так у нас будут просто светодиоды будут гореть..
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

а что вы хотите ввести через свитчи? их только 8. В моём примере входов 12. А чтобы вывести на семисегмент... надо еще один модуль писать. который надо тактовать примерно от 500Гц. А где её взять... 25Мгц делить на 50000... а! можно сделать 16-ти разрядный счетчик.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):а что вы хотите ввести через свитчи? их только 8. В моём примере входов 12. А чтобы вывести на семисегмент... надо еще один модуль писать. который надо тактовать примерно от 500Гц. А где её взять... 25Мгц делить на 50000... а! можно сделать 16-ти разрядный счетчик.
на 4х sw задаем двоичный код цифр от 0 до 9 и чисел от 10 до 16(0000,0001,0010...и тд) и выводим на семисегмент именно двоичный код чисел о до 16..задейственны все четыре индикатора на семисегменте..
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

т.е на семисегментнике выводить только 1 или 0 в зависимости от состояния соответствующего переключателя?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):т.е на семисегментнике выводить только 1 или 0 в зависимости от состояния соответствующего переключателя?
совершенно верно..)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение uldemir »

skiped
Последний раз редактировалось uldemir Ср май 16, 2012 23:37:46, всего редактировалось 1 раз.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
3kivan
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт май 03, 2012 23:39:26

Re: SPARTAN 3E семисегмент(перевод чисел)

Сообщение 3kivan »

uldemir писал(а):пфффффф.

Код: Выделить всё

entity test is
port ( mclk : in std_logic; - входные 25МГц или скока там.
         sw : in std_logic vector (3 downto 0);
         seg : out std_logic_vectar (6 downto 0);
         an : out std_logic_vectr (3 downto 0))

architecture behavioral is
signal divider : std_logic_vector (17 downto 0); - для делителя 25мгц на 65536 16 разрядов и еще 2 старших разряда для динамической индикации

signal data : std_logic;

constant one : std_logic_vector := "1111001";
constant zero : std_logic_vector := "1000000";

begin
 process (mclk) 
 begin
    if mclk'event and mclk='1' then
       divider <= divider+1;
    end if;
 end process;

with divider(17 downto 16) select
	an <= (0=>'0', others=>'1') when "00",
	  (1=>'0', others=>'1') when "01",
	  (2=>'0', others=>'1') when "10",
	  (3=>'0', others=>'1') when "11",
	  (others=>'-') when others;

with divider(17 downto 16) select
             data <= sw(0) when "00",
                    sw(1) when "01",
                    sw(2) when "10",
                    sw(3) when "11",
                   '-' when others;

seg <= zero when data='0' else one;

end behavioral;
насчет последней строчки не уверен, что написал правильно,
а в ucf написать это:?
NET "result<7>" LOC = "G1" ; # Bank = 3, Signal name = LD7
NET "result<6>" LOC = "P4" ; # Bank = 2, Signal name = LD6
NET "result<5>" LOC = "N4" ; # Bank = 2, Signal name = LD5
NET "result<4>" LOC = "N5" ; # Bank = 2, Signal name = LD4
NET "result<3>" LOC = "P6" ; # Bank = 2, Signal name = LD3
NET "result<2>" LOC = "P7" ; # Bank = 3, Signal name = LD2
NET "result<1>" LOC = "M11" ; # Bank = 2, Signal name = LD1
NET "result<0>" LOC = "M5" ; # Bank = 2, Signal name = LD0
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»