在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3365|回复: 5

[求助] 如何根据伪代码画出正确的datapath和状态图?

[复制链接]
发表于 2016-4-22 12:04:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

伪代码

伪代码

datapath

datapath


状态图

状态图


有时候会发现画出的状态图和datapath里时序有错误,与伪代码不对应
是否有合理的顺序去解决这种问题呢?
发表于 2016-4-23 13:51:54 | 显示全部楼层
自己写verilog代码综合一下就可以了
发表于 2016-5-1 12:24:39 | 显示全部楼层
回复 1# zjulsh

我根据你的意思,写了个code,仅供参考。另外,其实我对datapath里面"OUT->"不是很理解什么意思。



  1. module data_path(
  2.                                           input wire clk,
  3.                                           input wire clear,
  4.                                           output reg [3:0]i,
  5.                                           output reg [1:0]state);

  6. parameter state0 = 0;
  7. parameter state1 = 1;
  8. parameter state2 = 2;
  9. parameter state3 = 3;

  10. reg [1:0] next_state;
  11.                                           
  12.         always @ (posedge clk or posedge clear)
  13.                 begin
  14.                         if (clear)
  15.                                 state <= state0;
  16.                         else
  17.                                 state <= next_state;
  18.                 end

  19.         always @ (posedge clk or posedge clear)
  20.                 begin
  21.                         if (clear)
  22.                                 i <= 0;
  23.                         else
  24.                                 i <= (i != 10) ? i + 1 : i;
  25.                 end
  26.                
  27.         always @ (state or i)
  28.                 begin
  29.                         case (state)
  30.                                 state0: begin next_state = (i != 10) ? state1 : state3; end
  31.                                 state1: begin next_state = (i != 10) ? state2 : state3; end
  32.                                 state2: begin next_state = (i != 10) ? state1 : state3; end
  33.                                 state3: begin next_state = state3; end
  34.                         endcase
  35.                 end
  36.                
  37. endmodule                                          


复制代码
发表于 2016-5-2 17:37:29 | 显示全部楼层
自己写verilog代码综合一下就可以了
发表于 2021-2-28 10:03:00 | 显示全部楼层
多谢分享
发表于 2021-3-1 22:04:26 | 显示全部楼层
謝謝
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 22:50 , Processed in 0.021182 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表