如何使用Virtex 7在vhdl中的特定条件下转换clk off (0)
恩。
这是一个伪代码:
if(x>1)
clk off
else
clk on (rising-edge)
答案 0 :(得分:2)
使用Xilinx 7系列,您可以使用名为BUFGCE
这是一个时钟使能缓冲器,可以停止整个FPGA的区域时钟电路。看一下Xilinx 7 Series FPGAs Clocking Resources
答案 1 :(得分:1)
你所描述的是一个带门控的时钟"一般来说这不是一个好主意。如果以节能为目标,您可以通过时钟启用实现这一目标。时钟使能会发生的情况是时钟仍然在运行,但是当时钟使能关闭时,您可以阻止常常块(在Verilog中)或进程(在VHDL中)内的逻辑切换其触发器。这里有一些伪代码
always @(posedge i_clk)
begin
if (i_enable)
begin
// Lots of code goes here.
end
end
编写这样的代码的另一个好处是你可以在你的启用输入上有一个占空比,这也可以节省一些功率。如果您不需要逻辑以完整的i_clk速率运行,那么您可以每隔一段时间启用一次脉冲,并且逻辑仍将传播,功耗更低,速度更快。