「BUAA CO」P0总结

「BUAA CO」P0总结

Squirrel7ang Lv2

关于P0

P0的主要任务时利用Logisim搭建有限状态机。当然也存在非有限状态机的任务,比如GRF,但是上机题目大多是有限状态机。关于Pre到P2的题目可以参考fysszlr的博客\lrgg!/ 。22级P0挂了也不影响进度,P1和P2同理,只要课下补交过了就行。

个人建议

关于有限状态机

教程中对用Logisim搭建有限状态机进行了详细的说明,在此不多赘述。如果不熟悉,请务必复习一下。

个人认为Moore型机和Mealy型机的区别有俩:

  1. 一般来说Moore机所需要的状态参数会比Mealy机要多。
  2. 一般来说Moore机和Mealy机的输出时间会有差别,这是因为Moore机在输入信号发生改变时,需要等到时钟上升沿才能输出,但是Mealy级却可以在输入信号改变的沿改变输出。

因此当题目明确说明了要搭建Moore机或者Mealy机的时候,一定要按照题目说的来做。

关于同步/异步复位

同步复位在时钟上升沿检测复位信号,如果有效则进行复位;异步复位在复位信号有效时均进行复位,不论时钟如何变化。复位信号一般将寄存器复位为0。

在Logisim中异步复位是容易实现的,因为像诸如寄存器一类的时序逻辑部件往往提供异步复位的输入端口,只需要将复位信号接到对应端口即可。现实中也往往是这样,因为在物理层面,异步复位的设计更容易实现,而同步复位往往需要更复杂的架构或更多的晶体管。

所以Logisim中的部件一般没有同步复位端口,使用Logisim实现同步复位需要在上升沿向寄存器写入0,因此在输入端口增加一个Multiplexer,当reset信号有效时选择0,否则选择输入数据。这样就可以实现同步复位了。

关于快捷键

其实自己摸索一下大概也就出来了。

  • Ctrl + 1~8: 选中菜单栏从左往右数的对应选项。
  • 数字: 设置端口数,不同器件效果不同。逻辑门中表示输入端口数,选择器中表示选择信号位宽,Splitter中表示分支个数,Bit Extander中表示输入信号位宽,Bit Selector中表示输出信号位宽。想要输入两位数的时候就快速按两下数字。
  • Alt + 数字: 设置输入信号位宽,不同器件效果不同。
  • Ctrl + D: 等价于Ctrl + C 并且 Ctrl + V
  • Ctrl + T: Tick。时钟信号走一次。
  • Ctrl + K: 时钟信号持续变化,自己试一试就明白了。
  • Ctrl + E: 开启和关闭仿真。关闭时相当于给了一个全局暂停信号。

还是可以快一点点的。

待补充~

  • 标题: 「BUAA CO」P0总结
  • 作者: Squirrel7ang
  • 创建于 : 2024-02-01 11:55:05
  • 更新于 : 2024-02-01 21:16:15
  • 链接: https://redefine.ohevan.com/2024/02/01/CO/P0/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论