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

ID 683082
日期 9/28/2020
Public

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

文档目录

1.5.1.1. 指定一个上电值

综合工具中可用的选项使您能够指定设计的上电条件。 Intel® Quartus® Prime Pro Edition 综合提供Power-Up Level逻辑选项。

您可以通过源代码中的altera_attribute assignment来指定power-up level。由于综合工具不能更改内核寄存器的上电状态,所以此属性强制综合执行NOT gate push-back。

您可以将Power-Up Level逻辑选项应用到特定寄存器或者设计实体,模块或者子设计。当分配此选项时,此模块中的每个寄存器均接收值。默认情况下,寄存器上电到0。因此,您可以使用此assignment,通过NOT gate push-back强制所有寄存器上电到1

对于大型设计实体,将Power-Up Level设置成high逻辑电平可能会因为所需要的反相器(inverter)数量而降低结果的质量。在某些情况下,设计样式可能会由于enable信号推断或者次级控制逻辑推断而导致问题的出现。移植这种类型的设计可能也更加困难。

某些综合工具也可以读取寄存信号的默认值或者初始值,并在器件中实现此行为。例如, Intel® Quartus® Prime Pro Edition 综合将寄存信号的默认值转换成Power-Up Level设置。当 Intel® Quartus® Prime软件读取默认值,在功能仿真期间,综合行为与HDL代码的上电状态匹配。

具有高上电值的Verilog寄存器(Verilog Register with High Power-Up Value)

reg q = 1’b1; //q has a default value of ‘1’

always @ (posedge clk)
begin
	q <= d;
end

具有高上电电平的VHDL寄存器(VHDL Register with High Power-Up Level)

SIGNAL q : STD_LOGIC := '1'; -- q has a default value of '1'

PROCESS (clk, reset)
BEGIN
	IF (rising_edge(clk)) THEN
		q <= d;
	END IF;
END PROCESS;
您的设计可以根据信号类型包含未声明的默认上电条件。如果将VHDL寄存器信号声明为一个整数,那么 Intel® Quartus® Prime综合使用整数范围的左端作为上电值。对于默认的带符号整数类型,默认的上电值是幅度最大的负整数(100…001)。对于无符号整数类型,默认上电值为0
注: 如果目标器件体系结构不支持两个异步控制信号(例如aclraload),那么无法设置不同的上电状态和复位状态。如果NOT gate push-back算法创建一个将寄存器设置为1的逻辑,那么此寄存器上电到高电平。如果通过综合属性或初始值设置了不同的上电条件,那么综合将忽略上电电平。