|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我用verilog实现了一个两层循环的算法,用伪代码就大概是:
for(i=1;i<11;i++)
for(j=1;j<11;j++)
a[i]=a[i]+b[j];
仿真结果是对的,也能综合,但是同组的人都说我没有“有限状态机”,很不专业,也没法写报告;
但是我自认为设计的还是有条理的:
(a 和 b 都是register 或者就是buffer,连RAM的访问都不用)
rst信号时,所有寄存器复位;
外来enable信号时,第1个a 寄存器开始存储b 寄存器的累加值,我用一个counter_b从0开始计b 的相加次数;
当counter_b==10的时候,counter_b归零开始重新算,下一轮的累加结果赋给下一个a 寄存器,counter_a加一;
当counter_a==10的时候,counter_a归零,ready信号从0到1向系统提示任务完成;
说白了就是由rst, enable, counter_a, counter_b来控制的。请问如何用FSM(有限状态机)来抽象出来描述?
关键就是要把控制信号全都放到一个模块里面,起名为FSM,写文章的时候比较好看。 |
|