2014-01-19 2 views
0

Итак, у меня есть светодиод [7: 0], и у меня был цикл, который 7 раз, так что я пытаюсь сделать это назначениеКак присвоить значение для вывода массива в Verilog

for(i=0;i<=7;i++) 
    LED[i] = (some logics) 

и это просто дает мне об ошибке: объект на левой стороне уступки, должны иметь тип переменных данных "

но если запрограммировать это так:?

LED[0] = ... 
LED[1] = ... 
    . 
    . 
    . 

Он работает, я использую кварты II Verilog, таким образом, это прослушивало меня целый день ... Спасибо всем вам столько

+3

Пожалуйста показать реальный код. Я думаю, что то, что у вас там есть, может работать, но вам нужно увидеть ваши объявления во главе и то, что окружает этот цикл. – Tim

+0

Использование цикла 'for' кажется излишним. Почему не LED = (НЕКОТОРЫЕ ЛОГИКИ)? – toolic

+0

Не знаю, почему это было приостановлено. Провод/рег вещь совершенно нелогична, и неудивительно, что это вызывает путаницу. – EML

ответ

1

По этой логике вы, вероятно, хотели бы использовать для генерации цикла:

generate 
    for (i=0; i<8; i=i+1) begin : led_loop 
     assign LED[i] = (some logic); 
    end 
endgenerate 
+1

Для циклов внутри всегда блока синтезируются, если их можно статически развернуть, похоже, что ошибка указывает на какую-то вещь с правой стороны. – Morgan

+0

@Morgan: Я думаю, что светодиод определяется как провод, а должен быть рег. – Qiu

+1

Конечно, но все, что он должен сделать, это объявить его как рег. Для этого генерируется избыток. Ох - и исправить i ++ до i = i + 1, предполагая, что это на самом деле Verilog. – EML

Смежные вопросы