设计有一个时钟和复位端口(ap_clk 和 ap_reset)。这两个端口与源对象冷杉(即设计本身)相关联。 如源对象 fir 所示,设计还关联了其他端口。合成自动添加了一些块级控制端口:ap_start、ap_done、ap_idle 和 ap_ready。 接口合成教程提供了有关这些端口的更多信息。 函数输出 y 现在是一个 32 位数据端口,并...
"module_clock":"ap_clk", "module_reset":"ap_rst", "module_clock_enable":"ap_ce", "ap_ctrl_chain_protocol_idle":"ap_idle", "ap_ctrl_chain_protocol_start":"ap_start", "ap_ctrl_chain_protocol_ready":"ap_ready", "ap_ctrl_chain_protocol_done":"ap_done", "ap_ctrl_chain_protoco...
if (ap_clk‘event and ap_clk = ’1‘) then if (ap_rst = ’1‘) then ap_CS_fsm 《= ap_ST_st1_fsm_0; else ap_CS_fsm 《= ap_NS_fsm; end if; end if; end process; -- ap_reg assign process. -- ap_reg_proc : process(ap_clk) begin if (ap_clk’event and ap_clk = ...
],"rtl_top_module_name":"add_stream","rtl_performance": {"II":"0","latency":"0"},"rtl_resource_usage": {"BRAM":"0","DSP":"0","FF":"0","LUT":"0","URAM":"0"},"rtl_common_signal": {"module_clock":"ap_clk","module_reset":"ap_rst","module_clock_enable":"ap_ce"...
您会发现,Vivado HLS生成的Verilog假定运算始于start信号,并且输出数据在ap_done信号从低变高开始有效。Vivado HLS生成的Verilog/VHDL将始终保持至少三个基本信号:ap_start、ap_done和ap_idle,此外还有ap_clk信号。这意味着不管您使用Vivado HLS实现什么设计,设计latency都会限制您的流吞吐量。图2中的设计latency为69...
头文件的重点是声明数据类型。这里采用HLS中特有的定点数形式,包含ap_fixed.h与ap_int.h即可。由于输入为有符号弧度制(-3.1415~+3.1415),输出为-1~+1,所以定义两种数据精度:di_t :17bits = 1bit符号位 + 2bit整数 + 14bit小数 do_t:16bits = 1bit符号位 + 1bit整数 + 14bit小数 接着...
D. rtl代码里的ap_clk, 和ap_clk虽然在C代码里面没有对应,但这是每个rtl系统必不可少的; E. rtl代码里的ap_start, ap_done,ap_idle, ap_ready信号,在C代码里面也没有直接对应,这是综合工具自动添加的函数控制流程,它其实模拟了C代码里面fir函数的进入和推出机制。如果我们不需要这些控制信号,在综合的时候...
添加FIFO接口: Directive-> Interface -> mode: ap_fifo,包括输出的写使能和输入的FIFO满信号; 添加HLS总线协议: Directive-> Interface -> mode: ap_bus Block-level Protocol: 用于模块的控制端口的协议设计 当模块内消耗多于1个时钟周期,ap_clk和ap_rst会被自动添加; ...
添加FIFO接口: Directive-> Interface -> mode: ap_fifo,包括输出的写使能和输入的FIFO满信号; 添加HLS总线协议: Directive-> Interface -> mode: ap_bus Block-level Protocol: 用于模块的控制端口的协议设计 当模块内消耗多于1个时钟周期,ap_clk和ap_rst会被自动添加; ...
ap_clk : IN STD_LOGIC; ap_rst : IN STD_LOGIC; ap_start : IN STD_LOGIC; ap_done : OUT STD_LOGIC; ap_idle : OUT STD_LOGIC; coeff_empty_n : IN STD_LOGIC; coeff_read : OUT STD_LOGIC; dout_full_n : IN STD_LOGIC; dout_write : OUT STD_LOGIC; ...