我使用以下代码将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 。有人可以帮我吗?
答案 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";
欢迎堆栈溢出。