Возникли проблемы при установке двух контактов GB_IO
Я использовал следующий код для настройки моей fpga ICE40HX1K-VQ100 для ввода внешних часов:
SB_GB_IO gb_io1 (
.PACKAGE_PIN( clk ),
.GLOBAL_BUFFER_OUTPUT( gclk )
);
Это для вывода IOL_6B_GBIN7.
Само по себе это работает нормально, но мне также нужно было ввести сигнал внешнего события, поэтому я добавил этот код:
SB_GB_IO gb_io2 (
.PACKAGE_PIN( cmp ),
.GLOBAL_BUFFER_OUTPUT( gcmp )
);
это для контакта IOR_61_GBIN2.
Ну, это не так хорошо работает. Я думал, что это то, что имела в виду примитивная техническая библиотека. Если я просто использую clk, я в порядке. Контакт CMP не работает как провод. Когда я попытался использовать приведенный выше код, он все равно не работает и работает так, будто не видит сигнал на этом выводе.
Таким образом, после того, как мой мозг стал пытаться понять документацию, мне пришлось кричать UNCLE. Может ли кто-нибудь помочь мне с этим, пожалуйста?
1 ответ
Я считаю, что ответ заключается в том, что SB_GB_IO
примитив требует некоторых параметров при использовании для вашего gcmp
сигнал. В частности, может быть полезно указать что-то вроде defparam gb_io2.PIN_TYPE = 6'b000001;
, Пожалуйста, обратитесь к SBT_ICE_Technology_Library.pdf
(доступно на веб-сайте Lattice или в каталоге doc программного обеспечения iCEcube2), чтобы найти описание возможных параметров для примитивов.
Я не знаю ваших точных требований, вы уверены, что вам нужен глобальный буфер для gcmp
сигнал? Возможно, что-то вроде следующего будет работать?
SB_GB_IO gb_io1
( .PACKAGE_PIN(clk),
.OUTPUT_ENABLE(1'b1),
.GLOBAL_BUFFER_OUTPUT(gclk)
);
defparam gb_io1.PIN_TYPE = 6'b000001;
defparam gb_io1.PULLUP = 1'b0;
defparam gb_io1.NEG_TRIGGER = 1'b0;
defparam gb_io1.IO_STANDARD = "SB_LVCMOS";
SB_IO cmp_pad
(.PACKAGE_PIN(cmp),
.OUTPUT_ENABLE(1'b1),
.D_IN_0(gcmp));
defparam cmp_pad.PIN_TYPE = 6'b000001;
defparam cmp_pad.PULLUP = 1'b0;
defparam cmp_pad.NEG_TRIGGER = 1'b0;
defparam cmp_pad.IO_STANDARD = "SB_LVCMOS";
Добро пожаловать в стек переполнения.