计组笔记-P0-logisim状态机搭建

Posted by BUAADreamer on 2021-01-29
Words 617 and Reading Time 2 Minutes
Viewed Times

北航计算机组成原理课程设计的Project0笔记,主要是关于logisim的使用和状态机的搭建。

p0复习(logisim)·

注意的点·

  • 输入信号一般是通过MUX,多路选择器来实现对输出结果的控制。
  • 刚连接好电路时或者连接电路中,可能出现有一些线路莫名其妙是蓝色,这时关闭logisim后再次打开往往就好了。
  • comparator器件默认是有符号的,要调成unsigned来避免出现无符号数比较出现错误。
  • 一些Arithmetic模块器件使用时,由于上下两侧也有输出端,如果连在一起可能出现意外。
  • 组合逻辑部分如果输入、输出的位数较少,可直接用combinational analysis 里的 table 傻瓜式生成电路。
  • 出现“xxxx”或者“EEEE”往往是因为电路中有连错的电路,比如把输入当成输出元件连了;某条线没有连接在模块/元件的端口上,而是连在了空白区域
  • 出现“ ”、fewer than output we expected可能是时序问题,比如超出了题目给出的时间。或者期待输出非零值时输出了0。也有可能是appearance不对
  • DMX最好设置成 Three-state:Yes Disabled output:Float 如果Three state勾选为yes,那么DMX输出端没有被选中的路径保持原来的值不变

时序逻辑—状态机·

参考文章lyyf的logisim状态机博客

注意·

  • 状态转移、输出逻辑真值表生成
  • 寄存器的Q端在时钟信号为0时的值为初态,时钟信号的上升沿更新为次态
  • Moore输出逻辑,只和当前状态有关。
  • Mealy输出逻辑,除了当前状态,还必须和输入发生联系。
  • 当前状态值:时钟上升沿前是寄存器现有的值,上升沿时是状态转移模块的输出值s’)

Moore型·

Mealy型·

同步复位·

具体来说就是用一个多路选择器,如果复位信号为0,则正常更新状态值如果为1,就直接赋值给寄存器常量0

异步复位·

直接使用寄存器自带的clear端口进行复位即可

王pb助教的logisim评测帖子:http://cscore.net.cn/courses/course-v1:Internal+B3I062410+2020_T1/discussion/forum/course/threads/5f8ab909cf9bcc0efe0000bd

logisim命令行调试·

要用 jar 文件

我的电脑:java -jar logisim-generic-2.7.1.jar fsm.circ -tty table