Перейти к содержанию
    

Привычно применял для синтезатора атрибуты, чтобы сигнал тактирования попал на вход CLK триггера

 

Делал так

ENTITY latch_OE IS 
    port(    oe            : in std_logic;
            timer_in     : in natural    range 0    to 2**16-1;
            
            timer_out    : out natural    range 0    to 2**16-1  
            );
attribute clock_signal                : string;
attribute clock_signal of oe   : signal is "yes";
attribute period                      : string;
attribute period of oe         : signal is "15 ns";
end latch_OE;

architecture arh of latch_OE is
begin

process(oe)
  begin
     if (falling_edge(oe)) then
        timer_out <= timer_in;
    end if;
end process;
end arh;

 

Однако Ква плевал на мою просьбу

Warning (332060): Node: OE was determined to be a clock but was found without an associated clock assignment.

 

Как в новой среде QuartusII сообщить синтезатору, чтобы защелка питалась другим глобальным тактированием?

 

Спасибо! :tort:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за вырвиглазный код? В нем "прекрасна" каждая строка.

 

По теме - буферы тактовые есть в Альтере? Выход на тактовую сеть осуществляется через них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за вырвиглазный код? В нем "прекрасна" каждая строка.

 

По теме - буферы тактовые есть в Альтере? Выход на тактовую сеть осуществляется через них.

 

Буду рад вашим комментам....

 

По теме. В системе уже есть опорная частота CLK. Эта защелка нужна на время считывания содержимого этой защелки(пока OE не станет опять лог.1). Единственная защелка latch_OE, которая тактируется асинхронно от OE/ Все остальное в синхро от CLK

Как называются такие примитивы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая же это защелка? Это обычный регистр работающий по спадающему фронту. Зачем такое понадобилось телепатировать очень сложно. Но скорее всего оно вам не нужно. Особенно не нужно, если проект синхронный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая же это защелка? Это обычный регистр работающий по спадающему фронту. Зачем такое понадобилось телепатировать очень сложно. Но скорее всего оно вам не нужно. Особенно не нужно, если проект синхронный.

...вот именно так мне и надо. Мне важно, чтобы данные на время ое (в лог 0) данные не менялись. Обычный, но со своим сигналом запоминания

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...вот именно так мне и надо. Мне важно, чтобы данные на время ое (в лог 0) данные не менялись. Обычный, но со своим сигналом запоминания

поясните мне пожалуйста в чем разница, если сделать так

 

library ieee;  
use ieee.std_logic_1164.all;  

entity flop is  
  port(C, D, CE  : in  std_logic; 
      Q          : out std_logic);  
end flop;  
architecture archi of flop is  
  begin  
    process (C)  
      begin  
        if (C'event and C='1') then  
          if (CE='1') then  
            Q <= D;  
          end if;  
        end if;  
    end process;  
end archi;

 

зачем плодить "тактовые частоты" (gated clock)

if (falling_edge(oe)) then

чем не устраивет cделать это как сигнал разрешения?

и работать от одного клока.

Зачем использовать какие-то атрибуты в таком простом описании?

Пример описания тригера с разрешением я привел....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поясните мне пожалуйста в чем разница, если сделать так

 

library ieee;  
use ieee.std_logic_1164.all;  

entity flop is  
  port(C, D, CE  : in  std_logic; 
      Q          : out std_logic);  
end flop;  
architecture archi of flop is  
  begin  
    process (C)  
      begin  
        if (C'event and C='1') then  
          if (CE='1') then  
            Q <= D;  
          end if;  
        end if;  
    end process;  
end archi;

 

зачем плодить "тактовые частоты"

 

чем не устраивет cделать это как сигнал разрешения?

и работать от одного клока.

Зачем использовать какие-то атрибуты в таком простом описании?

Пример описания тригера с разрешением я привел....

 

Сигнал чтения от процессора ОЕ внешний. Мне выжно, чтобы код не ломался в интервале времени считывания извне. Терять время на привязке частот я не могу. Не красиво.

Вообще ведь простой вопрос. В ПЛИС могут быть несколько глобальных сигналов и синтезатору можно дать сообщение атрибутом,(как эьл делалось в Xilinx) чтобы он мог этот сигнал провести по лини тактирования. Обычная задача. Не понимаю... К чему эти сложности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сигнал чтения от процессора ОЕ внешний. Мне выжно, чтобы код не ломался в интервале времени считывания извне. Терять время на привязке частот я не могу. Не красиво.

сформировать свой сигнал разрешения на частоте логики нельзя? сделать это просто детектируем передний и задний фронт сигнала разрешения... Нужели 2-3 такта так критичны?

второй вариант пусть процессор выставляет на шине время сколько должен держаться сигнал разрешения. Запускается таймер и ...

 

Это более практичные реализации, чем Вы хотите сделать (мое мнение).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сформировать свой сигнал разрешения на частоте логики нельзя?

сделать это просто детектируем передний и задний фронт сигнала разрешения... Нужели 2-3 такта так критичны?

второй вариант пусть процессор выставляет на шине время сколько должен держаться сигнал разрешения. Запускается таймер и ...

 

Это более практичные реализации, чем Вы хотите сделать.

У меняя ОЕ длительностью не более 26нС. Тесно в таком интервале.

Тут нужен только архитектурный трюк для синтезатора, чтобы он подвел ОЕ на счетный вход регистра. Какие способы есть у QurtusII?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меняя ОЕ длительностью не более 26нС. Тесно в таком интервале.

Тут нужен только архитектурный трюк для синтезатора, чтобы он подвел ОЕ на счетный вход регистра. Какие способы есть у QurtusII?

поднять тактовую частоту логики до 200 - 250МГц

будет 5-6 тактов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поднять тактовую частоту логики до 200 - 250МГц

будет 5-6 тактов

Я это держу в голове...

Только хочется привычным способом. Без такого напряга. Какие-то несчастные 16 триггеров для удержания...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По теме - буферы тактовые есть в Альтере? Выход на тактовую сеть осуществляется через них.

Можно ссылку на этого зверя?.. Чтобы было понятно, как им верно пользоваться... Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гуглите Clocking Resources для вашего семейства.

Для Xilinx Virtex-6, например:

https://www.xilinx.com/support/answers/36991.html

 

С Альтерой не работал.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гуглите Clocking Resources для вашего семейства.

 

С Альтерой не работал.

 

С Xilinx проще... Тут Альтера ждет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы можете добавить в sdc файл строку:

create_clock -period "15 ns" -name {oe} {oe}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...