pengwenxue 发表于 2014-4-17 10:14:29

求助

我是新手,实在不明白:在verilog hdl中,既然while,repeat,forever语句不能被综合,那还有什么用呢?还有,我要编一段小程序,循环16次,中途如果某个触发条件满足,就退出循环体。不知如何编写?哪位老法师能否给予解答?

zhiweiqiang33 发表于 2014-4-17 11:02:44

while repeat forever这些语句是用来写测试验证(写testbench会用到)。其实verilog hdl大部分语句都是不可综合的。真正可综合的语句不多。verilog并不是完全只用来给FPGA编写code的。它还可以用来编写验证模型。可综合语句只是verilog的一个子集而已。verilog可以完成设计、仿真、验证。
至于你说你的code实验,也可以用计数的方式控制触发条件。具体代码得自己写了,祝你成功
:)!!!

zhiweiqiang33 发表于 2014-4-17 11:30:00

具体代码的实现我在这里给你牵引一下:
if(!rst_n)begin
        cnt      <= 4'd0 ;
        loop_end <= 1'b0 ;
        ...
        ...
end       
else if(trigle0)begin   //打断循环
        loop_end <= 1'b1;
        ...
        ...
end
else if(!loop_end)begin
        if(cnt == 4'd15)begin    //执行16次。期间如有trigle0触发则打断
                cnt      <= 4'd15;   
                loop_end <= 1'b1 ;
        end
        else begin
                cnt      <= cnt + 1;
                loop_end <= 1'b0   ;
        end
end
else begin
        cnt      <= cnt      ;
        loop_end <= loop_end ;
        ...
        ...       
end
页: [1]
查看完整版本: 求助