Vitёk 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба В модуле есть параметр WIDTH, его значение может задаваться снаружи, и этим задаётся ширина шины: parameter WIDTH = 8; output [WIDTH - 1: 0] d_out; input rd_oe; reg [WIDTH - 1: 0] Q; Каким образом, используя этот параметр, красиво сделать выбор между Z-состоянием и данными, вроде такого: assign d_out = rd_oe? Q : ZzZz; Собственно, что можно написать вместо ZzZz? Конструкция типа WIDTH'bz не компилиться, а 1'bz некорректно симулируется (и, вероятно, так же и разведётся). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба Из Handbook on Verilog HDL: An argument may be replicated by specifying a repetition number of the form: {repetition_number{exp1, exp2, ... , expn}} Example: C = {2{4’b1011}}; //C assigned the bit vector 8’b10111011 Вообщем пишите так: assign d_out = rd_oe ? Q : {WIDTH{1'bz}}; У меня в Quartuse 5.1 это работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба Это то, что доктор прописал... Спасибо! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться