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

时间:2019-04-23 21:48:09

标签: io ice40

我使用以下代码将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 。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我相信答案是SB_GB_IO原语用于gcmp信号时需要一些参数。特别地,指定诸如defparam gb_io2.PIN_TYPE = 6'b000001;之类的内容可能是有利的。请参考SBT_ICE_Technology_Library.pdf(可从Lattice网站或iCEcube2软件的目录doc中找到),以找到对基元参数的可能描述。

我不知道您的确切要求,确定要为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";

欢迎堆栈溢出。