我一直试图用vivado在Verilog中眨眼 . 我有一个100MHz的FPGA . 我的代码发布在下面:
module Blinky(
input clk,
input reset,
output reg led
);
reg [26:0] count;
wire state;
assign state = count[26];
always@ (posedge clk or posedge reset)
begin
if (reset)
count <= 0;
else
count <= count + 1; //otherwise increment the register
end
always@ (posedge state)
if (led == 1'b1)
led = 1'b0;
else
led = 1'b1;
endmodule
在这段代码中,我试图使用时钟分频器来减慢时钟 . 然后我使用慢速时钟信号来打开和关闭LED . 我知道约束是正确的,因为我可以对led进行硬编码 . 但是,当我尝试这个或其变化时,没有任何反应 . 有人可以帮忙吗?
1 回答
你的事情太复杂了 . 计数器的最高位可用于直接驱动LED;你不需要将它用作单独触发器的时钟 . (一般来说,您应该在FPGA设计中使用尽可能少的独立时钟信号; FPGA路由结构仅支持少量全局时钟 . )
将
output reg led
更改为output led
,删除state
以及引用它的所有内容(包括第二个always
块的全部内容),并添加: