0

我使用以下代码设置我的 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 我没问题。cmp 引脚不能用作电线。当我尝试使用上面的代码时,它仍然无法正常工作,并且就像在该引脚上看不到信号一样。

所以,在扭曲我的大脑试图理解文档之后,我不得不大喊UNCLE。有人可以帮我解决这个问题吗?

4

1 回答 1

0

我相信答案是SB_GB_IO原语在用于您的gcmp信号时需要一些参数。特别是指定类似的东西可能是有利的defparam gb_io2.PIN_TYPE = 6'b000001;。请参考SBT_ICE_Technology_Library.pdf(可从 Lattice 网站或 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";

欢迎来到堆栈溢出。

于 2019-04-25T11:34:47.290 回答