des00 26 September 20, 2011 Posted September 20, 2011 · Report post А как лучше делать, если нужны буферы по переднему и по заднему? в топлевеле при инстансе инвертировать Quote Share this post Link to post Share on other sites More sharing options...
Muscat 0 September 20, 2011 Posted September 20, 2011 · Report post Можно по-русски? Инвертировать клок? Так как я написал, или более разумным образом? ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use work.RS_PACK.all; entity GF_BUF is generic (front: std_logic:='1'); --По фронту какого сигнла работаем Port ( CLK : in STD_LOGIC; D : in STD_LOGIC_VECTOR (N_BITS downto 0); Q : out STD_LOGIC_VECTOR (N_BITS downto 0); RST : in STD_LOGIC); end GF_BUF; architecture Behavioral of GF_BUF is signal RISE,FALL: STD_LOGIC_VECTOR (N_BITS downto 0); begin RISE_P: process (CLK,RST) begin if (RST='1') then RISE<=(others=>'0'); elsif (CLK'event and CLK='1') then RISE<=D; end if; end process; FALL_P: process (CLK,RST) begin if (RST='1') then FALL<=(others=>'0'); elsif (CLK'event and CLK='0') then FALL<=D; end if; end process; Q<=RISE when front='1' else FALL; end Behavioral; Вот эта конструкция синтезируется ровно в то, что мне надо. При front='1' в тригеры по переднему фронту, при 0 по заднему. Чем чреват этот вариант? Quote Share this post Link to post Share on other sites More sharing options...
des00 26 September 20, 2011 Posted September 20, 2011 · Report post Можно по-русски? Инвертировать клок? Так как я написал, или более разумным образом? ставите инстанс модуля и когда подключаете сигнал тактовой инвертируете. Вот эта конструкция синтезируется ровно в то, что мне надо. При front='1' в тригеры по переднему фронту, при 0 по заднему. Чем чреват этот вариант? Вас устраивает то, что вам нужно два раза писать одно и тоже? и скорее всего это будет копипаст с правкой со всеми вытекающими? и при отладке нужно будет править в двух местах? Если устраивает то велкам. Quote Share this post Link to post Share on other sites More sharing options...
Muscat 0 September 20, 2011 Posted September 20, 2011 · Report post Что значит инстанс? Просто инвертировать сигнал, как я написал в пункте 1? Где копипаст? Зачем кописат? В одном месте указываю generic(0), в другом generuc (1) Quote Share this post Link to post Share on other sites More sharing options...
zombi 0 September 27, 2011 Posted September 27, 2011 · Report post Сорри что вклиниваюсь, не хочу плодить похожие темы. Меня вот что интересует : Т.е. схема будет считаться синхронной (правильной, без гонок,глюков и т.д.) если в схеме на все входа CLK регистров,счетчиков,триггеров поспупает именно входная частота (global clock) и защелкивать входные данные или нет должно определяться состоянием входа CLKEN ? Quote Share this post Link to post Share on other sites More sharing options...
tAmega 0 September 27, 2011 Posted September 27, 2011 · Report post Не обязательно входная частота, можно несколько частот, производные от нее, или вообще от разных, главное чтобы ни один триггер не защелкивался от сигналов, которые не являются клоками. И если в дизайне несколько клоков, то надо предусмотреть триггеры или FIFO для переброса данных с одного клока на другой. Да, эти два правила позволят Вам сказать, что дизайн синхронный. Quote Share this post Link to post Share on other sites More sharing options...
zombi 0 September 27, 2011 Posted September 27, 2011 · Report post Не обязательно входная частота, можно несколько частот, производные от нее, или вообще от разных, главное чтобы ни один триггер не защелкивался от сигналов, которые не являются клоками. Спасибо за помощь! И ешё хочу уточнить для себя: Вот, например, кусок схемы. Являются ли сигналы RDeR,EOE,GINC производными от GCLK? кошерно ли их подключать на CLK входы? Quote Share this post Link to post Share on other sites More sharing options...
tAmega 0 September 27, 2011 Posted September 27, 2011 · Report post Чтобы ответить точно, надо иметь VHDL описание Вашего lpm_mux0. Если там стоит мультиплексор, а за ним регистр, который тактируется по входу CLK, то да синхронные. Quote Share this post Link to post Share on other sites More sharing options...
zombi 0 September 27, 2011 Posted September 27, 2011 · Report post Чтобы ответить точно, надо иметь VHDL описание Вашего lpm_mux0. Если там стоит мультиплексор, а за ним регистр, который тактируется по входу CLK, то да синхронные. Спасибо, успокоили! Конечно в lpm_mux0 на выходе стоит регистр-защёлка (DFF) по нарастающему фронту GCLK. Quote Share this post Link to post Share on other sites More sharing options...
6oraTblpb 0 September 28, 2011 Posted September 28, 2011 · Report post Спасибо за помощь! И ешё хочу уточнить для себя: Вот, например, кусок схемы. Являются ли сигналы RDeR,EOE,GINC производными от GCLK? кошерно ли их подключать на CLK входы? Производными конечно являются ) Но если их подключить на тактовые входы, то схема перестает быть синхронной (кошерной?). Для синхронности надо их на clk_en включать. Quote Share this post Link to post Share on other sites More sharing options...
zombi 0 September 28, 2011 Posted September 28, 2011 · Report post Производными конечно являются ) Но если их подключить на тактовые входы, то схема перестает быть синхронной (кошерной?). Для синхронности надо их на clk_en включать. Т.е. для достижения полной синхронности надо (к примеру ins25 (DFF)) заменить на DFFE и RDeR подать на его CLK_EN а что на CLK подавать? Quote Share this post Link to post Share on other sites More sharing options...
tAmega 0 September 28, 2011 Posted September 28, 2011 · Report post Вот правильно Вам говорят, на CLK подавать только клоки и больше ничего и никогда. Как только Вы подали на вход клока сигнал, который в дизайне клоком не является, не выходит из GCLK, PLL, DCM, все дизайн перестает быть синхронным. Quote Share this post Link to post Share on other sites More sharing options...
zombi 0 September 28, 2011 Posted September 28, 2011 · Report post Вот правильно Вам говорят, на CLK подавать только клоки и больше ничего и никогда. Как только Вы подали на вход клока сигнал, который в дизайне клоком не является, не выходит из GCLK, PLL, DCM, все дизайн перестает быть синхронным. Т.е. если, к примеру, необходимо защёлкнуть некие входные данные в разных регистрах на 1,2,3,4-ом и т.д. такте GCLK (по нарастающему фронту) то мне необходимо сформировать четыре сигнала разрешения CLK_EN для каждого из регистров. Причем длительность 1-цы(т.е разрешение счёта) каждого из CLK_EN должна быть равна периоду GCLK. А на CLK входы всех регистров подать входную частоту GCLK поступающую непосредственно на clk_pin чипа? Пользую max300a, ни PLL ни DCM нет у оного. Quote Share this post Link to post Share on other sites More sharing options...
ViKo 1 September 28, 2011 Posted September 28, 2011 · Report post Т.е. если, к примеру, необходимо защёлкнуть некие входные данные в разных регистрах на 1,2,3,4-ом и т.д. такте GCLK (по нарастающему фронту) то мне необходимо сформировать четыре сигнала разрешения CLK_EN для каждого из регистров. Причем длительность 1-цы(т.е разрешение счёта) каждого из CLK_EN должна быть равна периоду GCLK. А на CLK входы всех регистров подать входную частоту GCLK поступающую непосредственно на clk_pin чипа? Пользую max300a, ни PLL ни DCM нет у оного. Точно так! Синхронный дизайн - когда все триггеры будут переключаться (если будут) синхронно, по одному тактовому сигналу. Quote Share this post Link to post Share on other sites More sharing options...
scorp 0 October 11, 2011 Posted October 11, 2011 · Report post И если в дизайне несколько клоков, то надо предусмотреть триггеры или FIFO для переброса данных с одного клока на другой. Можно здесь несколько поподробней? А конкретно о триггере для переброса данных с одного клока на другой? Когда ставится, чем тактируется, было бы замечательно если бы Вы привели небольшой пример (можно фрагмент на verilog). Спасибо! Quote Share this post Link to post Share on other sites More sharing options...