我一直试图用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进行硬编码。但是,当我尝试这个或它的变化没有任何反应。有人可以帮忙吗?
答案 0 :(得分:0)
你的事情太复杂了。计数器的最高位可用于直接驱动LED;你不需要将它用作单独触发器的时钟。 (一般来说,您应该在FPGA设计中使用尽可能少的独立时钟信号; FPGA路由结构仅支持少量全局时钟。)
将rtmp://
更改为output reg led
,删除output led
以及引用它的所有内容(包括第二个state
块的全部内容),然后添加:
always