|
Модуль RTC. |
|
|
|
Sep 4 2017, 11:44
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Сделал модуль RTC Код entity RTC is port( RST : in Std_logic; CLK : in Std_logic; SECONDS : out Std_logic_vector(5 downto 0); MINUTES : out Std_logic_vector(5 downto 0); HOURS : out Std_logic_vector(4 downto 0); DAY : out Std_logic_vector(5 downto 0); MONTH : out Std_logic_vector(3 downto 0); YEAR : out Std_logic_vector(11 downto 0) ); end RTC; и вычисляю часы, минуты, дни и так далее. Но модуль надо инициализировать реальным временем. Получается надо сделать что то вроде такого Код entity RTC is port( RST : in Std_logic; CLK : in Std_logic; SECONDS_IN : in Std_logic_vector(5 downto 0); MINUTES_IN : in Std_logic_vector(5 downto 0); HOURS_IN : in Std_logic_vector(4 downto 0); DAY_IN : in Std_logic_vector(5 downto 0); MONTH_IN : in Std_logic_vector(3 downto 0); YEAR_IN : in Std_logic_vector(11 downto 0);
SET : in Std_logic;
SECONDS_OUT : out Std_logic_vector(5 downto 0); MINUTES_OUT : out Std_logic_vector(5 downto 0); HOURS_OUT : out Std_logic_vector(4 downto 0); DAY_OUT : out Std_logic_vector(5 downto 0); MONTH_OUT : out Std_logic_vector(3 downto 0); YEAR_OUT : out Std_logic_vector(11 downto 0) ); end RTC; набор для ввода и набор для вывода. А по другому никак?
Сообщение отредактировал Jenya7 - Sep 4 2017, 11:47
|
|
|
|
|
 |
Ответов
|
Sep 4 2017, 12:42
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795

|
Цитата(Jenya7 @ Sep 4 2017, 14:44)  Сделал модуль RTC и вычисляю часы, минуты, дни и так далее. Но модуль надо инициализировать реальным временем. Получается надо сделать что то вроде такого ... набор для ввода и набор для вывода. А по другому никак? Способов можно придумать, наверное, немало, но не будут ли они при этом более неудачными? Что не устраивает в этом варианте?
Сообщение отредактировал Tausinov - Sep 4 2017, 12:48
|
|
|
|
|
Sep 4 2017, 14:43
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(Jenya7 @ Sep 4 2017, 17:10)  железо уже разработано. это старый проект. я только модули добавляю. Будьте готовы к тому, что такие часы будут не так точны, как специализированная RTC микросхема.
|
|
|
|
|
Sep 4 2017, 14:51
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(Inanity @ Sep 4 2017, 19:43)  Будьте готовы к тому, что такие часы будут не так точны, как специализированная RTC микросхема. ну это да. но периодически происходит корекция. а как мне высчитать високосный год? в Си делал Код uint32_t IsLeapYear(uint32_t year) { if(((year%4==0)&&(year%100!=0))||(year%400==0)) return 1; else return 0; } а тут Код function IsLeapYear(year : integer) return std_logic_vector is variable ret : std_logic_vector; begin if( (year mod 4)= 0 and (year mod 100) /= 0 or (year mod 400) = 0) then ret := 1; else ret := 0; end if; return ret; end function IsLeapYear; ругается Error (10500): VHDL syntax error at RTC.vhd(41) near text "or"; expecting ")", or "," Error (10500): VHDL syntax error at RTC.vhd(41) near text ")"; expecting "then" вроде со скобками все в порядке
|
|
|
|
|
Sep 4 2017, 15:19
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795

|
Цитата(Jenya7 @ Sep 4 2017, 17:51)  Код function IsLeapYear(year : integer) return std_logic_vector is variable ret : std_logic_vector; begin if( (year mod 4)= 0 and (year mod 100) /= 0 or (year mod 400) = 0) then ret := 1; else ret := 0; end if; return ret; end function IsLeapYear; ругается Error (10500): VHDL syntax error at RTC.vhd(41) near text "or"; expecting ")", or "," Error (10500): VHDL syntax error at RTC.vhd(41) near text ")"; expecting "then" вроде со скобками все в порядке Возьмите в скобки операцию "И" вместе с операндами. Видимо, что-то с приоритетами операций. Ну и ret нужно все-таки значения std_logic_vector'а присваивать, а не целые числа.
Сообщение отредактировал Tausinov - Sep 4 2017, 15:19
|
|
|
|
|
Sep 4 2017, 15:29
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(Tausinov @ Sep 4 2017, 20:19)  Возьмите в скобки операцию "И" вместе с операндами. Видимо, что-то с приоритетами операций. Ну и ret нужно все-таки значения std_logic_vector'а присваивать, а не целые числа. так тоже ругается Код function IsLeapYear(year : integer) return std_logic_vector is variable ret : std_logic_vector; begin if ( ((year mod 4) = 0) and ((year mod 100) /= 0) or ((year mod 400) = 0) ) then ret <= '1'; else ret <= '0'; end if; return ret; end function IsLeapYear;
|
|
|
|
Сообщений в этой теме
Jenya7 Модуль RTC. Sep 4 2017, 11:44 Flip-fl0p Цитата(Jenya7 @ Sep 4 2017, 14:44) Сделал... Sep 4 2017, 11:53 Jenya7 Цитата(Flip-fl0p @ Sep 4 2017, 16:53... Sep 4 2017, 11:57  Flip-fl0p Цитата(Jenya7 @ Sep 4 2017, 14:57) послед... Sep 4 2017, 12:02   Jenya7 Цитата(Flip-fl0p @ Sep 4 2017, 17:02... Sep 4 2017, 12:04        Tausinov Цитата(Jenya7 @ Sep 4 2017, 18:29) так то... Sep 4 2017, 15:31         Jenya7 Цитата(Tausinov @ Sep 4 2017, 20:31) Ага,... Sep 4 2017, 15:42          Flip-fl0p Кодuse IEEE.STD_LOGIC_UNSIGNED.ALL;
Уберите её, он... Sep 4 2017, 16:41           _Anatoliy Цитата(Flip-fl0p @ Sep 4 2017, 19:41... Sep 5 2017, 08:20            Flip-fl0p Так а вы счетчик объявите как тип UNSIGNED и тогда... Sep 5 2017, 08:43             _Anatoliy Цитата(Flip-fl0p @ Sep 5 2017, 11:43... Sep 5 2017, 08:50              Flip-fl0p Цитата(_Anatoliy @ Sep 5 2017, 11:50) В т... Sep 5 2017, 09:03               _Anatoliy Цитата(Flip-fl0p @ Sep 5 2017, 12:03... Sep 5 2017, 09:25                Flip-fl0p Цитата(_Anatoliy @ Sep 5 2017, 12:25)
То... Sep 5 2017, 09:42             andrew_b Цитата(Flip-fl0p @ Sep 5 2017, 11:43... Sep 5 2017, 09:55              _Anatoliy Цитата(andrew_b @ Sep 5 2017, 12:55) Когд... Sep 5 2017, 10:00              Flip-fl0p Цитата(andrew_b @ Sep 5 2017, 12:55) Когд... Sep 5 2017, 10:12          andrew_b Цитата(Jenya7 @ Sep 4 2017, 18:42) Код... Sep 5 2017, 05:26           Jenya7 Цитата(andrew_b @ Sep 5 2017, 11:26) Хоте... Sep 5 2017, 06:21 Tausinov А зачем преобразования делать в каждой строке? Дел... Sep 5 2017, 10:13 _Anatoliy Цитата(Tausinov @ Sep 5 2017, 13:13) А за... Sep 5 2017, 12:46  Flip-fl0p Цитата(_Anatoliy @ Sep 5 2017, 15:46) Ну ... Sep 8 2017, 10:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|