设置两个GB_IO引脚时遇到问题



我使用以下代码设置了我的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";

欢迎来到堆栈溢出。

最新更新