Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Attribute clock_signal от Xilinx
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
Мур
Привычно применял для синтезатора атрибуты, чтобы сигнал тактирования попал на вход 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.gif
dm.pogrebnoy
Что за вырвиглазный код? В нем "прекрасна" каждая строка.

По теме - буферы тактовые есть в Альтере? Выход на тактовую сеть осуществляется через них.
Мур
Цитата(dm.pogrebnoy @ Aug 3 2017, 16:36) *
Что за вырвиглазный код? В нем "прекрасна" каждая строка.

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


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

По теме. В системе уже есть опорная частота CLK. Эта защелка нужна на время считывания содержимого этой защелки(пока OE не станет опять лог.1). Единственная защелка latch_OE, которая тактируется асинхронно от OE/ Все остальное в синхро от CLK
Как называются такие примитивы?
dm.pogrebnoy
Какая же это защелка? Это обычный регистр работающий по спадающему фронту. Зачем такое понадобилось телепатировать очень сложно. Но скорее всего оно вам не нужно. Особенно не нужно, если проект синхронный.
Мур
Цитата(dm.pogrebnoy @ Aug 4 2017, 13:34) *
Какая же это защелка? Это обычный регистр работающий по спадающему фронту. Зачем такое понадобилось телепатировать очень сложно. Но скорее всего оно вам не нужно. Особенно не нужно, если проект синхронный.

...вот именно так мне и надо. Мне важно, чтобы данные на время ое (в лог 0) данные не менялись. Обычный, но со своим сигналом запоминания
Maverick
Цитата(Мур @ Aug 4 2017, 13:52) *
...вот именно так мне и надо. Мне важно, чтобы данные на время ое (в лог 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делать это как сигнал разрешения?
и работать от одного клока.
Зачем использовать какие-то атрибуты в таком простом описании?
Пример описания тригера с разрешением я привел....
Мур
Цитата(Maverick @ Aug 4 2017, 14:26) *
поясните мне пожалуйста в чем разница, если сделать так

Код
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) чтобы он мог этот сигнал провести по лини тактирования. Обычная задача. Не понимаю... К чему эти сложности?
Maverick
Цитата(Мур @ Aug 4 2017, 14:40) *
Сигнал чтения от процессора ОЕ внешний. Мне выжно, чтобы код не ломался в интервале времени считывания извне. Терять время на привязке частот я не могу. Не красиво.

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

Это более практичные реализации, чем Вы хотите сделать (мое мнение).
Мур
Цитата(Maverick @ Aug 4 2017, 14:48) *
сформировать свой сигнал разрешения на частоте логики нельзя?
сделать это просто детектируем передний и задний фронт сигнала разрешения... Нужели 2-3 такта так критичны?
второй вариант пусть процессор выставляет на шине время сколько должен держаться сигнал разрешения. Запускается таймер и ...

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

У меняя ОЕ длительностью не более 26нС. Тесно в таком интервале.
Тут нужен только архитектурный трюк для синтезатора, чтобы он подвел ОЕ на счетный вход регистра. Какие способы есть у QurtusII?
Maverick
Цитата(Мур @ Aug 4 2017, 14:52) *
У меняя ОЕ длительностью не более 26нС. Тесно в таком интервале.
Тут нужен только архитектурный трюк для синтезатора, чтобы он подвел ОЕ на счетный вход регистра. Какие способы есть у QurtusII?

поднять тактовую частоту логики до 200 - 250МГц
будет 5-6 тактов
Мур
Цитата(Maverick @ Aug 4 2017, 14:54) *
поднять тактовую частоту логики до 200 - 250МГц
будет 5-6 тактов

Я это держу в голове...
Только хочется привычным способом. Без такого напряга. Какие-то несчастные 16 триггеров для удержания...
Мур
Цитата(dm.pogrebnoy @ Aug 3 2017, 16:36) *
По теме - буферы тактовые есть в Альтере? Выход на тактовую сеть осуществляется через них.

Можно ссылку на этого зверя?.. Чтобы было понятно, как им верно пользоваться... Спасибо!
dm.pogrebnoy
Гуглите Clocking Resources для вашего семейства.
Для Xilinx Virtex-6, например:
https://www.xilinx.com/support/answers/36991.html

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

Мур
Цитата(dm.pogrebnoy @ Aug 9 2017, 14:17) *
Гуглите Clocking Resources для вашего семейства.

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


С Xilinx проще... Тут Альтера ждет
novartis
вы можете добавить в sdc файл строку:
create_clock -period "15 ns" -name {oe} {oe}
Мур
Цитата(novartis @ Aug 10 2017, 07:57) *
вы можете добавить в sdc файл строку:
create_clock -period "15 ns" -name {oe} {oe}

Хм... Как же я сразу не догадался! Спасибо, дорогой! 1111493779.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.