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

 
 
> Модуль RTC.
Jenya7
сообщение Sep 4 2017, 11:44
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tausinov
сообщение Sep 4 2017, 12:42
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795



Цитата(Jenya7 @ Sep 4 2017, 14:44) *
Сделал модуль RTC и вычисляю часы, минуты, дни и так далее.
Но модуль надо инициализировать реальным временем. Получается надо сделать что то вроде такого
...
набор для ввода и набор для вывода. А по другому никак?


Способов можно придумать, наверное, немало, но не будут ли они при этом более неудачными? Что не устраивает в этом варианте?

Сообщение отредактировал Tausinov - Sep 4 2017, 12:48
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 4 2017, 13:27
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Tausinov @ Sep 4 2017, 17:42) *
Способов можно придумать, наверное, немало, но не будут ли они при этом более неудачными? Что не устраивает в этом варианте?

хотелось послушать более опытных товарищей. я не очень искушен в написании под FPGA.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 4 2017, 14:01
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Jenya7 @ Sep 4 2017, 16:27) *
хотелось послушать более опытных товарищей. я не очень искушен в написании под FPGA.

чем не устраивает внешняя микросхема
например

вот тут можете под свои нужды выбрать(параметрический поиск)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 4 2017, 14:10
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Maverick @ Sep 4 2017, 19:01) *
чем не устраивает внешняя микросхема
например

железо уже разработано. это старый проект. я только модули добавляю.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Sep 4 2017, 14:43
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(Jenya7 @ Sep 4 2017, 17:10) *
железо уже разработано. это старый проект. я только модули добавляю.


Будьте готовы к тому, что такие часы будут не так точны, как специализированная RTC микросхема.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 4 2017, 14:51
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 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"
вроде со скобками все в порядке
Go to the top of the page
 
+Quote Post
Tausinov
сообщение Sep 4 2017, 15:19
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 4 2017, 15:29
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 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;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:36
Рейтинг@Mail.ru


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