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

 
 
> Как правильно сформировать сигнал DATA READY?
eteP
сообщение May 17 2005, 14:31
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 24-06-04
Пользователь №: 166



Привет.

Посмотрите плз. код.
Хотелось бы сделать так как показыно на картинке ну и с наименьшими затратами ресурсов в FPGA.
Сигнал DRY не зависел от длинны ND.
Ну и передний фрот DRY на 180 сдвинут от CLK.

Спасибо.

Код
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity a2b is
    port(
 CLK:    in std_logic;
 RSTl:    in std_logic;
 ND:  in std_logic;
 DIN:    in std_logic_vector(15 downto 0);
 DRY:    out std_logic;
 DOUT:    out std_logic_vector(15 downto 0)
    );
end a2b;


architecture a2b_arch of a2b is

signal DRY1: std_logic;
signal R: std_logic;

begin

P1:    process (CLK, RSTl)
begin
    
    if RSTl = '0' then

 DRY1 <= '0';
 DOUT <= (others => '0');
    
    elsif CLK'event and CLK = '1' then
 
 if ND = '1' then
     DOUT <= DIN;
     DRY1 <= '1';
 else
     DRY1 <= '0';
 end if;
 
    end if;
    
end process P1;

P2: process (CLK, RSTl, R)
begin

    if RSTl = '0' then
    
 DRY <= '0';
 R <= '0';
 
    elsif CLK'event and CLK = '0' then
    
 if R = '1' then
     DRY <= '0';
 elsif DRY1 = '1' then
     DRY <= '1';
     R <= '1';
 else
     R <= '0';
 end if;
 
 end if;
end process P2;

end a2b_arch;
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
oval
сообщение May 17 2005, 16:26
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Обычно я поступаю следующим образом:
Код
signal DRY_int : std_logic_vector(1 downto 0);

BEGIN
 p_Main : process(RST1, CLK)

 begin
   if RST1 = '0' then
     DRY_int <= (others => '0'); --Async reset
   elsif Falling_Edge(CLK) then -- Clocked by falling edge of CLK
     DRY_int <= ND & DRY_int(1); --Two bit shift register
   end if;
 end process p_Main;

 DRY <= DRY_int(1) and not DRY_int(0); -- Set output DRY

END arch;
Go to the top of the page
 
+Quote Post
eteP
сообщение May 17 2005, 16:37
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 24-06-04
Пользователь №: 166



А основной процесс работает по фронту?

Эта схема будет не правильно работать если сигнал ND будет выставлен чуть раньше заднего фронта.
По этому ND нельзя использовать. Нужен еще один регистер для ND. Тогда все работает коректно.

Код
signal DRY_int : std_logic_vector(1 downto 0);
signal DRY1: std_logic;

begin

P1:    process (CLK, RSTl)
begin
    
    if RSTl = '0' then

 DOUT <= (others => '0');
    
    elsif CLK'event and CLK = '1' then
 
 if ND = '1' then
     DOUT <= DIN;
     DRY1 <= '1';
 else
     DRY1 <= '0';
 end if;
 
    end if;
    
    
end process P1;


P2 : process(RSTl, CLK)

begin
  if RSTl = '0' then
    DRY_int <= (others => '0'); --Async reset
  elsif CLK'event and CLK = '0' then -- Clocked by falling edge of CLK
    DRY_int <= DRY1 & DRY_int(1); --Two bit shift register
  end if;
end process P2;

DRY <= DRY_int(1) and not DRY_int(0); -- Set output DRY

end a2b_arch;


Спасибо.
Это лучшее схема чем было у меня до этого. Спасибо еще раз.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- eteP   Как правильно сформировать сигнал DATA READY?   May 17 2005, 14:31
- - tocha   Если надо сформировать по фронту короткий импульс ...   May 17 2005, 15:45
- - makc   Если я не ошибаюсь, то в вышеприведенных схемах не...   May 17 2005, 17:48
|- - eteP   А не должно ли быть здесь Код process(clk...   May 17 2005, 18:35
||- - makc   Цитата(eteP @ May 17 2005, 21:35)А не должно ...   May 18 2005, 06:12
|- - des00   Цитата(makc @ May 17 2005, 12:48)Если я не ош...   May 18 2005, 04:12
|- - makc   Цитата(des00 @ May 18 2005, 07:12)Цитата(makc...   May 18 2005, 06:05
- - oval   Действительно, если сигнал ND асинхронен по отноше...   May 18 2005, 10:43
|- - eteP   Я использую среду альдек. Ситезатор XST 6.3 мапир...   May 18 2005, 12:33
- - oval   Цитата(eteP @ May 18 2005, 15:33)Я использую ...   May 18 2005, 13:28
|- - eteP   Когда я говорил что есть различия в моделирование,...   May 18 2005, 14:00
- - oval   Цитата(makc @ May 17 2005, 20:48)Если я не ош...   May 18 2005, 13:45
- - oval   Цитата(eteP @ May 18 2005, 17:00)Когда я гово...   May 18 2005, 14:33
|- - eteP   Тригер Q0 клокируется сигналом ND и не зависит от ...   May 18 2005, 15:06
|- - makc   Цитата(eteP @ May 18 2005, 18:06)Тригер Q0 кл...   May 18 2005, 15:12
- - sazh   Признаюсь, такую реализацию увидел в первый раз. Е...   May 19 2005, 06:38
- - oval   Цитата(eteP @ May 18 2005, 18:06)Тригер Q0 кл...   May 19 2005, 12:27


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 11:27
Рейтинг@Mail.ru


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