[an error occurred while processing this directive]
Если в Task, надо изменить какие либо сигналы описанные в другом месте, то просто берете их и меняете (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено -=Sergei=- 10 сентября 2004 г. 13:20
В ответ на: Вопрос по Verilog отправлено cdg 10 сентября 2004 г. 10:38

т.е. ни как не надо их определять в самом Таске, э.... вообшем если сравнивать с С++, то с этими переменными надо работать как с глобальными. Т.е. не надо Cs и Wr передовать в таск

Сделай вот так.

reg [2:0] Addr;
reg [2:0] MPDIO;
reg CS,Wr;

...

task WrDIO;
input [2:0] AddrIn;
input [7:0] DIn;
output [2:0] AddrOut;
output [7:0] DOut;
begin
CS = 1'b1;
DOut[7:0] = DIn[7:0];
AddrOut[2:0] = AddrIn[2:0];
#30 Wr = 1'b1;
#100 Wr = 1'b0;
#30 CS = 1'b0;
DOut[7:0] = 8'bz;
end
endtask

ну и вызов соответсвенно:

WrDIO(3'h1,8'h95,Addr[2:0],MPDIO[7:0]);
WrDIO(3'h2,8'h23,Addr[2:0],MPDIO[7:0]);


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru