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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Attribute clock_signal от Xilinx, Чем заменить в Altera?
Мур
сообщение Aug 3 2017, 13:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Привычно применял для синтезатора атрибуты, чтобы сигнал тактирования попал на вход 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
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Aug 3 2017, 13:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 714
Регистрация: 11-04-07
Пользователь №: 26 933



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

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


--------------------
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 3 2017, 14:03
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(dm.pogrebnoy @ Aug 3 2017, 16:36) *
Что за вырвиглазный код? В нем "прекрасна" каждая строка.

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


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

По теме. В системе уже есть опорная частота CLK. Эта защелка нужна на время считывания содержимого этой защелки(пока OE не станет опять лог.1). Единственная защелка latch_OE, которая тактируется асинхронно от OE/ Все остальное в синхро от CLK
Как называются такие примитивы?
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Aug 4 2017, 10:34
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 714
Регистрация: 11-04-07
Пользователь №: 26 933



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


--------------------
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 4 2017, 10:52
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



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

...вот именно так мне и надо. Мне важно, чтобы данные на время ое (в лог 0) данные не менялись. Обычный, но со своим сигналом запоминания
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2017, 11:26
Сообщение #6


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

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



Цитата(Мур @ 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делать это как сигнал разрешения?
и работать от одного клока.
Зачем использовать какие-то атрибуты в таком простом описании?
Пример описания тригера с разрешением я привел....


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

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


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(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) чтобы он мог этот сигнал провести по лини тактирования. Обычная задача. Не понимаю... К чему эти сложности?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2017, 11:48
Сообщение #8


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

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



Цитата(Мур @ Aug 4 2017, 14:40) *
Сигнал чтения от процессора ОЕ внешний. Мне выжно, чтобы код не ломался в интервале времени считывания извне. Терять время на привязке частот я не могу. Не красиво.

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

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


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

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


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



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

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

У меняя ОЕ длительностью не более 26нС. Тесно в таком интервале.
Тут нужен только архитектурный трюк для синтезатора, чтобы он подвел ОЕ на счетный вход регистра. Какие способы есть у QurtusII?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2017, 11:54
Сообщение #10


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

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



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

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


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

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


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



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

Я это держу в голове...
Только хочется привычным способом. Без такого напряга. Какие-то несчастные 16 триггеров для удержания...
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 9 2017, 09:04
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



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

Можно ссылку на этого зверя?.. Чтобы было понятно, как им верно пользоваться... Спасибо!
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Aug 9 2017, 11:17
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 714
Регистрация: 11-04-07
Пользователь №: 26 933



Гуглите Clocking Resources для вашего семейства.
Для Xilinx Virtex-6, например:
https://www.xilinx.com/support/answers/36991.html

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



--------------------
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 9 2017, 11:45
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



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

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


С Xilinx проще... Тут Альтера ждет
Go to the top of the page
 
+Quote Post
novartis
сообщение Aug 10 2017, 04:57
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 361
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



вы можете добавить в sdc файл строку:
create_clock -period "15 ns" -name {oe} {oe}
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th October 2017 - 11:29
Рейтинг@Mail.ru


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