Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Программируемые логические схемы и их применение»

Влом тщательно проверять

Отправлено V61 02 июля 2009, г. 18:07
В ответ на: Да, уяснил, но на vhdl... отправлено пользователем Boroda 02 июля 2009, г. 16:59


--
-- f_out = f_in * k/m (наверное нужно - 2k < m)
--
-- по умолчанию f_out = f_in * 5/13
--
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_arith .all;
use IEEE.STD_LOGIC_unsigned .all;

entity clk_d is
port(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
load : in STD_LOGIC;
m : in STD_LOGIC_VECTOR(7 downto 0);
k : in STD_LOGIC_VECTOR(7 downto 0);
clk_out : out STD_LOGIC
);
end clk_d;

architecture clk_d of clk_d is
signal cnt,sm,rg_m,rg_k : STD_LOGIC_VECTOR(8 downto 0);
begin
process(clk,rst)
begin
if rst = '1' then
rg_m <= "000011010";
rg_k <= "000001010";
cnt <= (others => '0');
elsif clk = '1' and clk'event then
if load = '1' then
rg_m <= (m & '0');
rg_k <= (k & '0');
end if;
if sm(8) = '0' then cnt <= sm;
else cnt <= cnt + rg_k;
end if;
end if;
end process;
sm <= cnt - rg_m + rg_k;
clk_out <= '0' when cnt < ext(rg_m(8 downto 1),9) else '1';

end clk_d;




Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
при вычитании трёх из шести получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru