Пт апр 01, 2016 15:39:15
entity divider1024 is
Port ( clk_input : in STD_LOGIC;
f_dyn : out STD_LOGIC_VECTOR (1 downto 0);
out32 : out STD_LOGIC);
end divider1024;
architecture Behavioral of divider1024 is
signal counter: std_logic_vector (9 downto 0);
begin
process (clk_input)
begin
if (clk_input'event and clk_input='1') then
counter <= counter+1;
End if;
end process;
out32 <= counter(9);
f_dyn <= counter(7 downto 6);
End Behavioral;
entity dynamic is
Port ( f_dyn : in STD_LOGIC_VECTOR (1 downto 0);
data0 : in STD_LOGIC_VECTOR (3 downto 0);
data1 : in STD_LOGIC_VECTOR (3 downto 0);
data2 : in STD_LOGIC_VECTOR (3 downto 0);
data3 : in STD_LOGIC_VECTOR (3 downto 0);
grid_sel : out STD_LOGIC_VECTOR (3 downto 0);
data_out : out STD_LOGIC_VECTOR (3 downto 0)
);
end dynamic;
architecture Behavioral of dynamic is
with f_dyn select
grid_sel <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when "11",
(others => '-') when others;
with f_dyn select
data_out <= data0 when "00",
data1 when "01",
data2 when "10",
data3 when "11",
(others => '-') when others;
end Behavioral;
div_out <= div_in when a_sel = "10" else '0';
Пт апр 01, 2016 16:57:04
Полностью присоединяюсь, удалять ничего не надо!asvhmao писал(а):Не, не, не!!! Ни чего удалять не надо!!!!
Пт апр 01, 2016 18:46:47
Пт апр 01, 2016 19:23:53
Так что можете прикинуть, что, чтобы просто хранить время срабатывания будильника надо 13 макроячеек. Вот сделаете часики, посмотрите сколько у вас свободных макроячеек останется. Найдется ли место хотя бы для этих 13 макроячеек? Но часики с будильником у меня есть на xc2c128 - на 128 ячеечной микросхеме их удалось впихнуть.Для тех, кто не знает нюансов, скажу просто: одна макроячейка - один триггер. Т.е., чтобы поделить частоту 32768Гц до 1Гц необходим 15-тиразрядный двоичный счетчик, следовательно, это отъест 15 макроячеек. Еще один нюанс состоит в том, что наружу сигнал может выходить также только с макроячейки. Таким образом сделать счетчик до 10 потребует 4 макроячейки, а преобразовать двоичный код в семисегментный и вывести наружу - еще 7. Конечно, макроячейки еще поедаются на промежуточные сигналы, если выражение подаваемое на макроячейку слишком сложное.
Сб апр 02, 2016 01:12:21
0 1 2 3 4 5 6 7 8 9 Кол-во
A * * * * * * * * 8 <-
B * * * * * * * * 8 <-
C * * * * * * * * * 9 <-
D * * * * * * * 7 <-
E * * * * 4 <-
F * * * * * * 6 <-
G * * * * * * * 7 <-
6 2 5 5 4 5 6 3 7 6 = 49 горят
1 5 2 2 3 2 1 4 0 1 = 21 не горят
Сб апр 02, 2016 05:55:42
asvhmao писал(а):Полистал пару страниц ссылки темы про часики и увидев таблицу подумал, если в семи сегментном преобразователе не зажигать лампочки, а гасить их, этим не получится ячейки сэкономить?
Сб апр 02, 2016 20:25:22
Сб апр 02, 2016 20:52:54
Сб апр 02, 2016 21:14:44
Тоже чуть попозже нашел магическое слово "attribute FSM_EXTRACT of minutes: signal is "NO";". В результате, получилось также компактно, как и тогда, когда я логику переходов описывал логическими выражениями."САПР увидев таблицу переходов из состояния в состояние радостно заявлял, что узрел конечный автомат и применял соотвествующий шаблон, состоящий из счетчика необходимой разрядности (4) и регистров состояния (10) ну и выходных сигналов (7). Короче, даже бинарный счетчик с дешифратором получались компактнее."
Вт апр 05, 2016 16:08:37
Вт апр 05, 2016 16:46:06
Вт апр 05, 2016 22:39:46
Чт апр 07, 2016 22:06:33
Пт апр 08, 2016 06:02:01
Пт апр 08, 2016 10:01:40
uldemir писал(а):Похоже, что впереди надо добавить library IEEE;
uldemir писал(а):попробуйте этот:
uldemir писал(а):Адд бус тап - там была какая-то невнятность
uldemir писал(а):p.s. Я же говорил, помучаетесь с этим редактором и добровольно побежите изучать VHDL или Verilog
Пт апр 08, 2016 11:36:54
Вс апр 10, 2016 23:50:07
Meteor писал(а):asvhmao писал(а):К стати, как его правильно подключать сигнал с генератора? На прямую или через сопротивление?
Можно и так и эдак - лучше через резистор.
Пн апр 11, 2016 05:50:14
Вспомнил слова Meteorа...
Во время прошивки микросхема ведь меняет уровни высокий низкий......
В итоге микросхема стирается, записывается, но ноги не дышат На шестой ноге "1", на остальных "0". Камень ушёл в мусорку
Пн апр 11, 2016 06:08:09
Трудно сказать. сам будильник, уже писал, потребует 13 ячеек хранить время. пара ячеек, чтобы сравнивать с текущим и "пищать" (если не делать "генератор" а, опять же использовать отводы от делителя на 1024). А вот как устанавливать будильник? как отображать устанавливаемое время? Это тоже потребует ресурсов. В моих часиках всё управляется тремя кнопками и "устанавливаемый" параметр мигает. И, как писал, требует xc2c128. Индикация, правда, статическая.asvhmao писал(а):а сейчас будильник не поместится
Пн апр 11, 2016 07:01:54
Meteor писал(а):Вот теперь я не могу понять виноват я за выход из строя Вашей микросхемы, или не виноват...
Резистор какого номинала установили?
uldemir писал(а):Если подаёте 10 МГц, то все эти "SLOW" надо вернуть обратно на "FAST" в установках проекта.
uldemir писал(а):У первой микросхемы я как-то умудрился спалить один вход. Но перерезал дорожку и подал сигнал на соседний пин, перекомпилировал и всё работало дальше