verilog中任务、循环的使用帮助请教?
1-在一个task中,我需要根据clk的上升沿对数据进行配置,可是在task中如何按照clk来进行呢?
repeat(16)@(posedge clk)
begin
……
end
可是这样编译不通过啊?还有就是我想一个task只运行16个clk,在clk的上升沿对cs,rw,rd等进行操作。
2-在整个系统的多个module中是不是直接利用include就可以啦?
3-还有想请问的就是:for循环能不能按照clk的节拍走啊?
一般的都是:always@(posedge clk)
begin
for(i=0,i<10,i++)begin …… end
end
for里面的“……”语句在一个clk周期内全部完成了,
能不能每一个for里面的begin……end语句按照clk的节拍运行啊?如何操作呢?
还请帮帮忙,多多指教,谢谢!
verilog中任务、循环的使用帮助请教?
思路不太对
如果是初学的话建议不要用task为好。
1。repeat(16)@(posedge clk)的方法不行,你需要造一个使能信号,只有16个clk有效。
2。不需要用include。直接分别编译,各种软件都能按module名生成结构关系。
3。for语句在边界确定的情况下可综合,但是你说的功能可以不用for,直接用个计数器就可以了。
verilog中任务、循环的使用帮助请教?
1.你如果16个clock都要用,那么肯定需要16个配置电路。
2.可综合task一般只能实现组合逻辑
3.要实现按clock走的for功能,用for不行,可以用一个4位计数器,不同的记数时去处理一个配置电路。
verilog中任务、循环的使用帮助请教?
我觉得你可以改用状态机是不是效果会更好点,不要老想的for语句。不过改用状态机的话,16个状态是有点多,但是思路会很清晰。另外,在for和task中,我一般编写的都是组合电路,没有用过时钟。虽然task中可以用时钟,可以通过仿真,但是综合能否我也不知道,:(,建议谨慎使用。如果不嫌麻烦的话,我建议还是状态机好,我经常使用:)。
verilog中任务、循环的使用帮助请教?
支持状态机.
verilog中任务、循环的使用帮助请教?
用状态机吧
verilog中任务、循环的使用帮助请教?
如果是做仿真的话,还是用task好
另外,1的用法是可以的,可能是你的语法写的有问题
repeat(num)
verilog中任务、循环的使用帮助请教?
如果是做仿真的话,还是用task好
另外,1的用法是可以的,可能是你的语法写的有问题,我是这样用的,没有问题
repeat(num)
begin
@(posedge clk)
begin
.........
end
end