【发布时间】:2012-03-19 18:09:50
【问题描述】:
我对 FPGA 和 Verilog 还很陌生,但是我无法让我的代码按照我的预期在模拟器中运行。似乎 Isim 模拟器没有在我的代码中对整数进行“操作”。下面是相关代码的sn-p。我试图通过每次整数 i 达到 10 时切换 SCK_gen 来划分 clk 脉冲。当我在 Isim 中运行此代码时,SCK_gen 永远不会改变值。同样,当我在 FPGA 上实现代码时,它的行为与我预期的一样,我可以观察到 1/10 时钟频率的脉冲。如果有人能指出我正确的方向,我将不胜感激。谢谢
//signals
//for SCK_clock
reg SCK_gen, SCK_hold;
integer i;
reg en_SCK;
wire neg_edge_SCK;
//SCK_generator
always @(posedge clk, posedge reset)
if (reset)
begin
SCK_gen <= 0;
end
else
begin
i <= i+1;
SCK_hold <= SCK_gen;
if(i == 10)
begin
SCK_gen <= ~SCK_gen;
i <= 0;
end
end
//detect neg edge of SCK
assign neg_edge_SCK = SCK_hold & SCK_gen;
【问题讨论】:
标签: simulation verilog fpga