Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

4.9. 复位行为

对于您的HLS组件,复位置位可以为异步,但复位接触置位必须为同步。

可以使用复位同步器从异步复位输入生成复位置位和取消置位行为,如以下实例Verilog代码所述:
reg [2:0] sync_resetn;
always @(posedge clock or negedge resetn) begin
  if (!resetn) begin
    sync_resetn <= 3'b0;
  end else begin
    sync_resetn <= {sync_resetn[1:0], 1'b1};
  end
end
wire synchronized_resetn;
assign synchronized_resetn = sync_resetn[2];

实例Intel Quartus Prime Pro Edition工程中使用的该同步器代码是针对您的组件而生成并包含在i++编译中。使用同步器以最小化异步信号传输中由于亚稳态而导致同步失败的可能。关于亚稳态的更多信息,请参阅Intel Quartus Prime Pro版用户指南:设计建议中的 “使用Intel Quartus Prime软件管理亚稳态”

复位被置位后,该组件将其busy信号保持为高并将其done信号保持为低。当复位被解除置位后,组件将其busy信号保持为高电平,直到组件准备好接受下一次调用。所有组件接口(agents、hosts和流)只在组件busy信号为低电平时准备就绪。

仿真组件复位

可以使用ihc_hls_sim_reset API查看仿真过程中您组件的复位行为。如果执行了重置(即,在组件的硬件仿真期间调用了复位),则此API返回1。否则,API返回0

调用API,如下:
int ihc_hls_sim_reset(void);

在组件的x86仿真过程中,ihc_hls_sim_reset API始终返回 0。您无法在x86仿真期间复位组件。