3594|4

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于不同状态机格式占用资源的问题 [复制链接]

我用的CPLD,里面有4路的相同模块,每个模块有一个状态机,开始我用的一段式状态机,发现资源不够,进行了各种优化后,还是不够,于是我抱着试试看的态度将1段式状态机改为三段式,发现资源够用了,一共降低了大约7%,从理论上来讲,为什么3段状态机比一段状态机节省资源???
此帖出自FPGA/CPLD论坛

最新回复

同意4楼的说法  详情 回复 发表于 2015-1-21 13:48
点赞 关注
 

回复
举报

5979

帖子

8

TA的资源

版主

沙发
 
应该是代码综合成其它浪费逻辑的东西
此帖出自FPGA/CPLD论坛
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

230

帖子

2

TA的资源

纯净的硅(初级)

板凳
 
从理论上来说,三段式状态机综合出来的电路确实要比一段式更费逻辑,但是也不是绝对的,可能某些特殊的结构,三段式反而综合了电路更加简洁。具体的,如果你愿意,可以把两种形式的代码发上来我们一起分析。
此帖出自FPGA/CPLD论坛
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

4
 
    其实那三段式的问题我也支持分开写省资源。而且我觉得还有办法进一步省资源。方法是状态机用卡诺图化简的方法手工变为组合逻辑,使整个代码风格越“硬件”化。    因为我以前仔细比对过可综合的verilog生成的具体电路。原理很简单:都写在一个always块中的状态机由于变量太多,综合时会很复杂。情况更容易定义不全。比如编译器经常会报“生成潜在锁存器”的情况。总而言之,这种代码风格会对编译器编译、编译、综合、布线带来难度。进而增加资源占用率。
   分多个always写结构更清晰。写的时候按照电路的样子一块一块写。编译器一下子就可以理解。因为每个always块都是最基本的结构。这样减少了复杂的交错结构。资源使用量自然不增反减。
    总结一下:行为级的描述方法更接近c语言,代码简单。但如果以写“软件”的思路写虽然功能能实现,可如果要节省资源就很难做到了。
                      结构化的描述更接近硬件本身,按照一块一块电路的模式去写,虽然代码会长一些,但是综合起来绝对省资源。
Best,
Jack







此帖出自FPGA/CPLD论坛
 
 
 

回复

156

帖子

0

TA的资源

一粒金砂(中级)

5
 
同意4楼的说法
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表