[an error occurred while processing this directive]
|
занимаюсь расширением собственной сферы познания красоты мироздания..
то бишь в дополнении/замещении к VHDL осваиваю Верилог.
Язык нравится.. многое схоже с ВХДЛ, но нравится то что нет этих дурацких пакетов, которые при использовании различных синтезаторов надо подключать разные, а порой на ВХДЛ приходится менять операторы, переписывать лишь для того чтобы подсунуть другому синтезатору и посмотреть результат синтеза..
в верилоге же все в стандарте... и никаких пакетов. .человеческий оператир сдвина << и >> , не приходится смотреть в пакете конкретного синтезатора как реализовать тот или иной оператор.
.
привык писать на ВХДЛ высокопараметризованные модули.
но пока непонятно как на Верилоге описать эквивалент ВХДЛьного
(others=>'0'):
generic (w_hilb_trans: positive := 12);
signal pc00: SIGNED(w_hilb_trans downto 0);
pc00 <= (others=>'0');
потому как в верилоге жестко указывается разрядность присваемого числа... , конечно понятно что можно не заморачитвать и присвоить число в десятичной системе, т.е.
pc00 = 0; (верилог)
но как быть когда требуется работа с тристабильными сигналами, т.е. не совсем очевидно как/чем заменить
pc00 <= (others=>'Z'); (vhdl)
потом.. не могу разобраться с передачей параметров в экземпляр компонента :(
в руководстве от актель указан такой вариант:
my_first u_my_first_1 #(8,16) (clk,rst,ce,din,cin,dout,valid);(верилог)
но у меня синтезатор ругаецца..:(
и еще вопрос: в чем разница 'define и parameter - только ли в том, что 'define действует глобально, а parameter в пределах модуля? в каких случаях лучше использовать какой из них ??
.
и еще до кучи:
для того чтобы получать эквивалент сигнального присвоения на ВХДЛ ВНЕ_процесса (непрерывного):
pc00 <= pe00; --(хотя по сути это краткая запись на вхдл процесса, имеющего в списке чувствительности сигнал pe00)
на верилоге всегда надо использовать ключ. слово assign (когда это делается ВНЕ_тела_процесса):
assign pc00 = pe00;
E-mail: info@telesys.ru