Я играю с cliffordwolf / picorv32, и у меня возникли проблемы с пониманием следующего фрагмента в picosoc
(ссылка на источник):
SB_IO #(
.PIN_TYPE(6'b 1010_01),
.PULLUP(1'b 0)
) flash_io_buf [3:0] (
.PACKAGE_PIN({flash_io3, flash_io2, flash_io1, flash_io0}),
.OUTPUT_ENABLE({flash_io3_oe, flash_io2_oe, flash_io1_oe, flash_io0_oe}),
.D_OUT_0({flash_io3_do, flash_io2_do, flash_io1_do, flash_io0_do}),
.D_IN_0({flash_io3_di, flash_io2_di, flash_io1_di, flash_io0_di})
);
Я нашел графическое описание примитива SB_IO
в технологии Lattice iCE40. документацию библиотеки, но я до сих пор не могу понять ее назначение, потому что мне слишком сложно ее интерпретировать. Есть еще один вопрос о примитиве, после прочтения которого я можно было бы предположить, что он создает какое-то двунаправленное соединение, но я не мог понять, как это связано с тем, чтобы выходной контакт был "трехсторонним".
Я был бы признателен за высокоуровневое описание эффекта ячейки SB_IO
в этой конкретной конфигурации. Какой вывод подключен к какому выводу? Какие входы, а какие выходы? Какова цель создания экземпляра этой ячейки?
SB_IO
. Причина, по которой я возился с этим, заключается в том, что инструктор моего курса FPGA побуждает нас участвовать в конкурсе FPGA (что имеет смысл: это был бы отличный способ научиться), и для этого мне нужно включитьpicosoc
в свой дизайн . - person nalzok   schedule 01.04.2020flash_io_buf [3:0]
здесь и далее не используются, поэтому у этого экземпляра должны быть какие-то побочные эффекты? - person nalzok   schedule 01.04.2020flash_io3, flash_io2, flash_io1, flash_io0
это контакты ввода-вывода, а неflash_io_buf [0:3]
o_O. - person nalzok   schedule 01.04.2020