Мога ли да използвам цяло число в изявление case във Verilog?

Не съм сигурен дали следният код е валиден във Verilog. По-конкретно, може ли да се използва цяло число в оператор за случай като условие, както в:

input [2:0]W;
integer k=1;
output [7:0]Y;
case (W)
k:y[k]=1;
endcase

person Sadman Sarar    schedule 26.05.2015    source източник
comment
защо имате нужда от цялото число?   -  person inye    schedule 26.05.2015
comment
Какво точно се опитвате да постигнете?   -  person Qiu    schedule 26.05.2015
comment
ако искате да използвате етикет за вашия случай вместо необработена стойност, може би помислете за използването на parameter или localparam?   -  person wilcroft    schedule 26.05.2015
comment
Поне с този код, защо не просто y[W] = 1;?   -  person Unn    schedule 26.05.2015


Отговори (1)


В публикувания въпрос вашият изход Y е с главни букви, y в присвояването е с малки букви, след като това бъде разрешено, операторите за случай не могат да стоят сами по себе си, те трябва да бъдат вътре в винаги или в начален блок.

Например:

always @* begin
  case (W)
    k: y[k]=1;
  endcase
end

Цяло число е просто 32 (или 64) битова рег. Синтактично не се различава с използване на цяло число вместо reg.

person Morgan    schedule 27.05.2015