Xilinx,Isim处理Verilog整数类型的仿真

时间:2012-03-19 18:09:50

标签: simulation verilog fpga

我对FPGA和Verilog很陌生,但我遇到了一个问题,就是让我的代码在模拟器中运行,我希望如此。似乎Isim模拟器在我的代码中没有“操作”整数。以下是相关代码的片段。我试图通过在每次整数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;

1 个答案:

答案 0 :(得分:4)

如果任何操作数为'x',则任何算术或逻辑相等操作的结果为'x'。由于看起来i未初始化,因此语句i <= i+1i没有影响,因此比较(i == 10)将始终为false。

相关问题