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

Передача клоков с входа на выход

P.S. И, пока Вы еще в самом начале обучения, переходите лучше на Verilog.  :)

 

и чего так на этом форуме всем советуют Verilog, хотя VHDL тоже очень хороший язык описания аппаратуры :)

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


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

Блин, даже стыдно стало за свой предыдущий вопрос)

 

process (CLK,enable) is
begin
out_p<=enable and CLK;
end process;

 

Вот так хорошо?

Изменено пользователем Muscat

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


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

Блин, даже стыдно стало за свой предыдущий вопрос)

 

...

 

Вот так хорошо?

однозначно нет

лучше так

 

process (CLK,enable)
begin
if CLK = '1' and CLK'event then
if enable = '1' then
...
end if;
end if;
end process;

 

посмотрите здесь описание регистров На этом же сайте можете посмотреть как описываются базовая логика (счетчики, дешифраторы, FSM и так далее)

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


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

Почему плохо?

 

По приведенному коду

Мне надо, чтобы он по ОБОИМ фронтам работал. То есть просто передавал на выход то, что на входе при наличии разрешения

if CLK = '1' and CLK'event then

А так получится то, что я пытался сделать во втором случае- в 2 раза замедленные клоки

 

За ссылку спасибо, почитаю. Читал Coding Style Guide от Actel, там описаны простейшие триггеры, примеры работы с памятью, организация выводов. То что описано под ксайлингз будет так же хорошо для Actel?

 

PS

Ушел читать дата-шит на микросхему на предмет DDR-output. Но все же очень любопытно, почему будет плохо сделать это через умножитель

Изменено пользователем Muscat

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


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

А еще "правильнее" использовать удвоенную тактовую частоту изначально. А на выход выдавать поделенную. Тогда и для триггера разрешения найдутся такты.

out_p<=enable and CLK;

А на Verilog пишется по-людски:

out_p = enable & CLK;

Если Вы - любитель Паскаля, тогда да - VHDL. Во всех остальных случаях (C, программирование микроконтроллеров) - SystemVerilog. Мое личное мнение.

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


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

Почему плохо?

 

По приведенному коду

То что описано под ксайлингз будет так же хорошо для Actel?

Да, может быть только отличие в описании блочной памяти.

По поводу работы по обоим фронтам смотри советы выше в этой ветке - там уже говорилось про удвоение частоты и дальнейшая работа Вашей логики только по одному фронту...

Какой кристалл ПЛИС?

Расскажите как Вы себе представляете "почему будет плохо сделать это через умножитель"?

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


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

Какой кристалл ПЛИС?

Расскажите как Вы себе представляете "почему будет плохо сделать это через умножитель"?

 

M1A3P1000L - на отладочной плате

В моем понимании "плохо" означает, что реализация либо требует много ресурсов и есть более экономичные варианты, либо вариант "медленный", либо и то и то вместе.

Так чем чревата реализация через and?

 

Про делитель клоков честно говоря не понял как это сделать.

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


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

:05: А чем плох вариант с использованием комбинационной логики (схемы "И" или мультиплексора)???

 

to Muscat: ИМХО, в вашем варианте выражение с and лучше вынести из процесса.

Изменено пользователем jb83

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


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

Блин, даже стыдно стало за свой предыдущий вопрос)

 

process (CLK,enable) is
begin
out_p<=enable and CLK;
end process;

 

Вот так хорошо?

 

Работать будет, а насчет "хорошо"  - вопрос спорный.  :)

 

Советую прочесть:

http://www.altera.com/literature/hb/qts/qu...ii_handbook.pdf

Volume 1, Section II, 5-10, "Gated Clocks".

Это хоть и для Альтеры, но, думаю, Вам тоже будет полезно.

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


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

:05: А чем плох вариант с использованием комбинационной логики (схемы "И" или мультиплексора)???

 

to Muscat: ИМХО, в вашем варианте выражение с and лучше вынести из процесса.

возможными глитчами (лишними импульсами)

 

M1A3P1000L - на отладочной плате

В моем понимании "плохо" означает, что реализация либо требует много ресурсов и есть более экономичные варианты, либо вариант "медленный", либо и то и то вместе.

Так чем чревата реализация через and?

 

Про делитель клоков честно говоря не понял как это сделать.

посмотрите внимательно ресурсы ПЛИС - она имеет встроенный блок PLL (на первой странице в таблице) !!! Так что вопрос об возможности удвоения частоты внутри ПЛИС снят!

 

даташит на ПЛИС

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


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

:bb-offtopic:

и чего так на этом форуме всем советуют Verilog, хотя VHDL тоже очень хороший язык описания аппаратуры :)

Вопросы навскидку:

как в VHDL сделать аналогию $finish ПО ЧЕЛОВЕЧЕСКИ?

вытяжка сигналов из иерархии ПРОСТО И ПО ЧЕЛОВЕЧЕСКИ?

ну и как обычно - строгая типизация и принты: вот как отпринтить интегер ПО ЧЕЛОВЕЧСКИ в хексовом виде ?

....

Это всё конечно можно реализовать на VHDL потратив ессно время и копипастить куда нужно.. :maniac:

 

Но на верилоге и СВ это быстро и интуитивно :laughing:

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


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

:bb-offtopic:

 

Вопросы навскидку:

как в VHDL сделать аналогию $finish ПО ЧЕЛОВЕЧЕСКИ?

вытяжка сигналов из иерархии ПРОСТО И ПО ЧЕЛОВЕЧЕСКИ?

ну и как обычно - строгая типизация и принты: вот как отпринтить интегер ПО ЧЕЛОВЕЧСКИ в хексовом виде ?

....

Это всё конечно можно реализовать на VHDL потратив ессно время и копипастить куда нужно.. :maniac:

 

Но на верилоге и СВ это быстро и интуитивно :laughing:

ну вот начались пиньки в сторону VHDL :rolleyes:

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


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

Maverick извините, но я не знаю что такое PLL и как им пользоваться. Для меня вопрос все еще стоит. Почитал Coding Style Guide от Актель, нашел нужный блок, описан через комбинационную логику.

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


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

Maverick извините, но я не знаю что такое PLL и как им пользоваться.

описание 1

 

описание 2

 

он заводится с помощью так называемого генератора ядер, который генерирует готовые IP ядра

 

ЗЫ во всяком случае у Xilinx так. С Actel я не работал

 

ЗЫ ЗЫ здесь на странице 447, что-то про это написано

 

Maverick Почитал Coding Style Guide от Актель, нашел нужный блок, описан через комбинационную логику.

не поделитесь описанием :)

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


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

ну вот начались пиньки в сторону VHDL :rolleyes:

У меня - время==деньги :laughing: да и прямой копипаст не всегда реашет вопрос

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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