Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

1.5.2. 诸如Clear和Clock Enable的次级寄存器控制信号

Intel FPGA中的寄存器提供很多次级控制信号。使用这些信号可以对每个寄存器实现控制逻辑,而无需使用额外的逻辑单元。 Intel FPGA器件系列对次级信号的支持各不相同,因此请查阅器件系列数据表以验证目标器件中可用的信号。

为了最有效地利用器件中的信号,请确保HDL代码尽可能与器件体系结构匹配。由于体系结构的本质,控制信号具有一定的优先级。您的HDL代码必须尽可能遵循该优先级。

综合工具可以使用常规逻辑仿真任何控制信号,因此可以实现功能正确的结果。但是,如果您的设计要求允许灵活地对控制信号的使用和优先级进行控制,那么将您的设计与目标器件体系结构进行匹配,以实现最有效的结果。如果设计中信号的优先级与目标体系结构的优先级不同,那么可能需要额外的逻辑来实现控制信号。这种额外的逻辑使用了额外的器件资源,并可能导致控制信号的额外延迟。

在某些情况下,在器件体系结构中使用专用控制逻辑以外的逻辑可能会产生更大的影响。例如, clock enable信号的优先级高于器件体系结构中的同步resetclear信号。 clock enable关闭了LAB中的时钟线,并且clear信号是同步的。因此,在器件体系结构中,同步清零(clear)仅在出现时钟沿时才生效。

如果用同步clear信号定义一个寄存器,此clear信号的优先级高于clock enable信号,那么 Intel® Quartus® Prime综合使用寄存器的数据输入来仿真时钟使能功能。您不能应用Clock Enable Multicycle约束,因为仿真功能不使用寄存器的Clock Enable端口。在这种情况下,使用不同的优先级导致意外的结果(对clcock enable信号赋予一个assignment)。

对于所有Intel FPGA器件系列,信号顺序都时相同的。但是,并非所有器件系列都提供每个信号。优先顺序为:

  1. Asynchronous Clear ( clrn)—最高优先级
  2. Enable (ena)
  3. Synchronous Clear (sclr)
  4. Synchronous Load (sload)
  5. Data In (data)—最低优先级

Intel FPGA器件中的次级控制信号的优先顺序与其他供应商的FPGA器件的顺序不同。如果设计要求对优先级比较灵活,那么在FPGA供应商之间移植设计时,请确保次级控制信号满足设计性能要求。为达到最佳效果,请尝试匹配目标器件体系结构。

包含次级信号的Verilog D-type Flipflop总线

此模块使用全部的 Intel® Arria® 10 DFF次级信号:clrnenasclrsload。请注意,它实例化8-bit总线的DFF,而不是单个DFF,因为仅当存在多个具有相同次级信号的DFF时,综合才会推断某些次级信号。

module top(clk, clrn, sclr, sload, ena, data, sdata, q);
	input clk, clrn, sclr, sload, ena;
	input [7:0] data, sdata;
	output [7:0] q;
	reg [7:0] q;
	always @ (posedge clk or posedge clrn)
		begin
		if (clrn)
			q <= 8'b0;
		else if (ena)
			begin
			if (sclr)
				q <= 8'b0;
			else if (!sload)
				q <= data;
			else
				q <= sdata;
			end
		end
endmodule