由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
EE版 - 请懂FSM(有限状态机)的大侠来帮帮忙啊
相关主题
请教如何做FPGA的门级功耗估计?问个VERILOG的问题
状态机设计软件有谁用过Precision或者Synplify来综合FPGA的?
求解一个状态机的题古怪的SPICE问题
问个面试题问题求助:spectre, wavescan, netlist, current measurement等
请教关于verilog综合的问题ASIC design frontend vs backend
CS背景借道问一个EE的embedded programming问题Cadence 里面的Graphic Interface是用什么软件写的?
Re: 用VHDL 写算法问个oscillator仿真的问题
高手点解:如何从matlab生成hdl文件?怎么在家里的windows下做电路仿真?
相关话题的讨论汇总
话题: fsm话题: counter话题: 状态机话题: 寄存器话题: 有限
进入EE版参与讨论
1 (共1页)
t******0
发帖数: 629
1
我用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,写文章的时候比较好看。
p******a
发帖数: 130
2
搜一下2段式或者3段式状态机的写法。

【在 t******0 的大作中提到】
: 我用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从

t******0
发帖数: 629
3
谢谢大侠指点。
有限状态机的代码格式和基本概念我知道,也一定会继续思考的。
看别人的文章时,他们都会画出Block Diagram,其中有一个 FSM 放在那里,用几个信
号箭头和其他block相连,然后给出直观的抽象状态流图。
请问一般数字电路设计中, FSM 是一个必须独立来设计的模块吗?综合以后的电路也
要专门考虑FSM该放到floorplan 的位置是吗?
我对综合很不懂,弱感觉verilog代码里FSM就是和其他功能融合在一块儿的东西。。。
我是刚刚转行VLSI的,课程都是从本科课刚学起,搞研究就更没有经验了,无奈老板赶
鸭子上架。。。。。请大侠排砖啊,感激不尽。
p******a
发帖数: 130
4
假设你要讨论的是时序电路.FSM一般是一个模块的主干,应该是首先设计的.FSM状态
的转换在时钟沿实现.输入对状态及输出的影响在时钟沿之间用组合逻辑实现.这样做
的好处是分离了组合逻辑和时序逻辑,便于静态时序分析以及时序优化.建议你看看
altera的
"recommended hdl coding style".
FSM只要能被综合软件识别出来的话,一般都优化得很好,我觉得一般不需要用
floorplan.大宽度数据传输之类的地方可能需要用到floorplan, 比如将一个32-bit宽
的数据从一个模块的输出送到另一个模块的输入.当然具体情况具体分析,从静态时序
分析仪中你可以找到最需要优化的关键路径.
另外,如果你使用Altera的Quartus II的话,在"Tools->Netlist Viewers->State
Machine Viewer"里面应该可以看到状态流图,如果没看到,说明设想中的状态机实际
上被综合成了别的结构.

【在 t******0 的大作中提到】
: 谢谢大侠指点。
: 有限状态机的代码格式和基本概念我知道,也一定会继续思考的。
: 看别人的文章时,他们都会画出Block Diagram,其中有一个 FSM 放在那里,用几个信
: 号箭头和其他block相连,然后给出直观的抽象状态流图。
: 请问一般数字电路设计中, FSM 是一个必须独立来设计的模块吗?综合以后的电路也
: 要专门考虑FSM该放到floorplan 的位置是吗?
: 我对综合很不懂,弱感觉verilog代码里FSM就是和其他功能融合在一块儿的东西。。。
: 我是刚刚转行VLSI的,课程都是从本科课刚学起,搞研究就更没有经验了,无奈老板赶
: 鸭子上架。。。。。请大侠排砖啊,感激不尽。

t******0
发帖数: 629
5
实在是非常感谢。学习了:)

【在 p******a 的大作中提到】
: 假设你要讨论的是时序电路.FSM一般是一个模块的主干,应该是首先设计的.FSM状态
: 的转换在时钟沿实现.输入对状态及输出的影响在时钟沿之间用组合逻辑实现.这样做
: 的好处是分离了组合逻辑和时序逻辑,便于静态时序分析以及时序优化.建议你看看
: altera的
: "recommended hdl coding style".
: FSM只要能被综合软件识别出来的话,一般都优化得很好,我觉得一般不需要用
: floorplan.大宽度数据传输之类的地方可能需要用到floorplan, 比如将一个32-bit宽
: 的数据从一个模块的输出送到另一个模块的输入.当然具体情况具体分析,从静态时序
: 分析仪中你可以找到最需要优化的关键路径.
: 另外,如果你使用Altera的Quartus II的话,在"Tools->Netlist Viewers->State

O******2
发帖数: 210
6
Synplify Pro也可以直接自动生成FSM的图出来。
n******g
发帖数: 662
7
It seems that your code will use many adders to realize the addition between
a and b.
Your colleague may be suggesting you to use FSM plus an adder to realize the
whole function?
1 (共1页)
进入EE版参与讨论
相关主题
怎么在家里的windows下做电路仿真?请教关于verilog综合的问题
spectre netlistCS背景借道问一个EE的embedded programming问题
将verilog netlist导入SoC Encounter求助Re: 用VHDL 写算法
一个logic circuit 的问题高手点解:如何从matlab生成hdl文件?
请教如何做FPGA的门级功耗估计?问个VERILOG的问题
状态机设计软件有谁用过Precision或者Synplify来综合FPGA的?
求解一个状态机的题古怪的SPICE问题
问个面试题问题求助:spectre, wavescan, netlist, current measurement等
相关话题的讨论汇总
话题: fsm话题: counter话题: 状态机话题: 寄存器话题: 有限