XST  – 如何在使用同步和异步重置时减少资源使用?-Altera-Intel社区-FPGA CPLD-ChipDebug

XST – 如何在使用同步和异步重置时减少资源使用?

问题描述

结合同步和异步复位会占用大量资源。如何最小化资源使用?

解决/修复方法

的Verilog

module new_async_soft_reset(a_in,b_out,async_reset,soft_reset,clock);

输入a_in;

输入async_reset;

输入soft_reset;

输入时钟;

输出b_out;

reg b_out;

reg soft_reset_reg;

wire reset_all;

assign reset_all = soft_reset_reg | async_reset;

总是@(posedge clock或posedge async_reset)

开始

if(async_reset)

soft_reset_reg <= 1’b0;

其他

soft_reset_reg <= soft_reset;

结束

总是@(posedge clock或negedge reset_all)

开始

if(~reset_all)

b_out <= 1’b0;

其他

b_out <= a_in;

结束

endmodule

VHDL

库;

使用ieee.std_logic_1164.all;

实体new_async_soft_reset是

port(a_in,async_reset,soft_reset,clock:in std_logic;

b_out:out std_logic);

最终实体;

new_async_soft_reset的体系结构new_async_soft_reset_arch是

signal soft_reset_reg,reset_all:std_logic;

开始

reset_all <= soft_reset_reg或async_reset;

进程(clock,async_reset)是

开始

如果async_reset =’1’那么

soft_reset_reg <=’0′;

elsif clock’event和clock =’1’然后

soft_reset_reg <= soft_reset;

万一;

结束过程;

进程(clock,reset_all)是

开始

如果reset_all =’0’那么

b_out <=’0′;

elsif clock’event和clock =’1’然后

b_out <= a_in;

万一;

结束过程;

终端架构;

请登录后发表评论

    没有回复内容