我使用以下代码设置了我的ICE40HX1K-VQ100 fpga以输入外部时钟:
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,我就可以了。中央管理总动员PIN 不能用作电线。 当我尝试使用上面的代码时,它仍然不起作用,并且表现得好像它看不到该引脚上的信号。
所以,在扭曲我的大脑试图理解文档之后,我不得不大喊叔叔。 有人可以帮我一把吗?
答案是SB_GB_IO
原语在用于gcmp
信号时需要一些参数。特别是指定类似的东西可能是有利的 defparam gb_io2.PIN_TYPE = 6'b000001;
.请参考SBT_ICE_Technology_Library.pdf
(可从莱迪思网站获取,或在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";
欢迎来到堆栈溢出。