1.有限状态机分类?
答: Moore 型状态机:状态机的输出只与当前的状态有关
Mealy 型状态机:状态机的输出不仅与当前的状态有关,还与当前的输入有关
1..1两种状态机区别?
答:Moore状态机:在时钟脉冲的有限个门延时后,输出达到稳定。输出会在一个完整的时钟周期内保持稳定值,即使在该时钟内输入信号变化了,输出信号也不会变化。输入对输出的影响要到下一个时钟周期才能反映出来。把输入和输出分开,是Moore状态机的重要特征。
Melay状态机:由于输出直接受到输入影响,而输入可以在时钟周期的任意时刻变化,这就使得输出状态比Moore状态的输出状态提前一个周期到达。输入信号的噪声可能会出现在输出信号上。
对同一个电路,使用Moore状态机设计可能要比使用Mealy状态机多出一些状态。
2.task和function区别?
答:消耗仿真时间与否,task可以有消耗仿真时间的语句,function不能有消耗时间的语句,task不一定就消耗仿真时间。
task可以调用function,function不能调用task。
在verilog中:task可以返回多个值(output),function只能返回一个值
task是没有return的, void function也是没有return的
3.简述AXI总线具体的outstangding设计
- 我对AXI总线中outstanding的理解是这样的,outstanding作为一种“超强传输机制”,它可以支持Master向Slave连续发送多条command,在连续发送command的过程中不需要等待Slave执行完成后返回的标志信号,可以大幅度提升总线的带宽性能和总线的效率。
- 其实在设计中可以考虑一种思路,那就是在Slave中开辟一段缓冲空间(RAM,fifo等),用于缓存command,Slave把command存起来不执行就是,来多少我存多少,但是缓存空间的大小设定是需要在做总线带宽前需要设计好的,根据AXI的burst大小和长度及理论带宽速率来计算,因此不可能无限存储。当Slave存储command满的时候,它就必须要执行;Slave可以从缓存空间中连续执行command并返回响应,假设你的缓存空间是8(满了),Slave可以执行x条,那么此时Master就可以继续连续发送x条指令
- 因此outstanding能力N就是等于缓冲空间的大小,当然N也不能很大,不然会被某一个Slave总线会堵死。outstanding的本质就是“面积换带宽”当N=1就变成AHB能力了