Вано 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 (изменено) · Жалоба Собственно вопрос в следующем: Как можно присвоить переменной типа wire значение переменной типа reg т.е. reg[15:0] xxx; wire[15:0] yyy; reg g; как ууу = xxx ? 1) я использую метод с применением bufif0.т.е. в блоке объявления переменных bufif0( yyy, xxx, g); Затем в task -ах я просто присваививаю значения переменной xxx и автоматический у меня инициализируется переменная типа wire , т.е ууу . 2) провести это присвоение в рамках процесса always , используя assign, а еще как? Изменено 4 апреля, 2006 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GroundCtrl 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Собственно вопрос в следующем: Как можно присвоить переменной типа wire значение переменной типа reg т.е. reg[15:0] xxx; wire[15:0] yyy; reg g; как ууу = xxx ? 1) я использую метод с применением bufif0.т.е. в блоке объявления переменных bufif0( yyy, xxx, g); Затем в task -ах я просто присваививаю значения переменной xxx и автоматический у меня инициализируется переменная типа wire , т.е ууу . 2) Как можно есче провести это присвоение в рамках процесса always или еще как? assign ууу = xxx; И всё!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вано 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 (изменено) · Жалоба Собственно вопрос в следующем: Как можно присвоить переменной типа wire значение переменной типа reg т.е. reg[15:0] xxx; wire[15:0] yyy; reg g; как ууу = xxx ? 1) я использую метод с применением bufif0.т.е. в блоке объявления переменных bufif0( yyy, xxx, g); Затем в task -ах я просто присваививаю значения переменной xxx и автоматический у меня инициализируется переменная типа wire , т.е ууу . 2) Как можно есче провести это присвоение в рамках процесса always или еще как? assign ууу = xxx; И всё!!!!! По-моему, вы ошибаетесь. always @( fas_ff_fe or fas_db ) if(fas_ff_fe) begin assign yyy=xxx; end Это работать будет наобхорот , если xxx=yyy, а обратно не будет, в этом и проблема что переменной wire не присвоишь assign переменную типа reg, наоборот можно. Изменено 4 апреля, 2006 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба always @( fas_ff_fe or fas_db ) if(fas_ff_fe) begin assign yyy=xxx; end Это работать будет наобхорот , если xxx=yyy, а обратно не будет, в этом и проблема что переменной wire не присвоишь assign переменную типа reg, наоборот можно. мда, вообще-то assign это отдельный блок его в always ставить нельзя - синтаксическая ошибка, но только в теле module вам правду говорят на счёт assign module a (input clk, input e); wire a; reg b; reg c; reg t; assign a=b; //assign b=a; - ошбка: b - тип регистр always @* begin c=a; //a=t - ошибка: а тип провод end always @(posedge clk) b<=e; initial t=1'b1; wire f; initial begin //f=1'b1; - ошибка: f - тип провод end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 6 апреля, 2006 Опубликовано 6 апреля, 2006 · Жалоба Либо так: reg[15:0] xxx; wire[15:0] yyy = xxx; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться