ограничения myhdl, связывающие несколько выводов с переменной

Я буду использовать iCE40HX8K.

учитывая файл ограничений оценочных плат

set_io LED3 A2  
set_io LED7 B3  
...  
etc  

как лучше всего объединить все 8 светодиодов в одну переменную. У меня были проблемы с ассоциацией вещей с моим файлом ограничений, и в итоге получилось что-то вроде этого

#main module
def ledcount(LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, clk):

при записи регистра на светодиоды мне приходится прибегать к этому

op.next = op + 1
LED1 = op[0]
...
LED8 = op[7] 

Я генерирую verilog вот так... (здесь у меня были отдельные нарезанные биты из одного сигнала, но это, похоже, вызывало проблемы - т.е. LED3 в ограничениях ничего не назначал)

clock = Signal(bool(0))
l1 = Signal(bool(0))
...
l8 = Signal(bool(0))
toVerilog(ledcount, l1, l2, l3, l4, l5, l6, l7, l8, clock)

достаточно плохо, но он станет громоздким с параллельным адресом и шиной данных ...

Я заметил, что в сгенерированном Verilog LED1-8 указаны так

input LED1;
...
input LED8;

перед предложением always и внутри всегда

reg LED1;
...
reg LED8;

Пока все это компилируется (оборудование должно прибыть завтра!) и может (?) даже работать... Я уверен, что это можно сделать лучше!

Я был бы очень рад обрабатывать светодиоды вместе как один байт, используя манипуляции с битами...


person Chris Camacho    schedule 24.02.2016    source источник
comment
op.next = op + 1 LED1.next = op[0] ... LED8.next = op[7] плюс несколько других ошибок, но все же хотелось бы знать, как связать порты LED1-LED8 вместе...   -  person Chris Camacho    schedule 25.02.2016


Ответы (1)


Самый простой способ - изменить ваши ограничения на

set_io LED[2] A2

а затем используйте один светодиодный порт

def ledcount(leds, clk)

и его можно преобразовать в

clk = Signal(bool(0))
leds = Signal(intbv(0)[8:])
myhdl.toVerilog(ledcount, leds, clk)
person Christopher Felton    schedule 25.02.2016
comment
здорово... так проще! MyHDL намного проще, чем бороться с тучными официальными инструментами! - person Chris Camacho; 25.02.2016