第3章开 发 环 境本章对本书中实验所涉及的开发软件Logisim、Mars和Vivado进行简要的介绍。
3.1Logisim
Logisim是一款简单易用的数字逻辑电路的设计、仿真软件。本节以数字系统中常用的24译码器电路设计为例,详细介绍Logisim软件的设计过程。
3.1.1设计分析
24译码器有2个输入端、4个输出端和1个使能端。当使能端为有效电平时,对应的输出端只有一个有效,其余均为无效电平。具体来说,2个输入变量(A、B)共有4种组合状态,因此译码器有4个输出信号(Y3~Y0)。假定使能端E、输出Y3~Y0均为低电平有效,则24译码器各输出端的逻辑表达式为0=··;1=··B;2=·A·;3=·A·B3.1.2设计过程
打开Logisim软件,如图3.1所示,Logisim用户界面主要由菜单栏、工具栏、元件库、属性区、编辑区和缩放区构成。
图3.1Logisim用户界面
菜单栏: 主要包括文件(File)、编辑(Edit)、工程(Project)、仿真(Simulate)、窗口(Window)和帮助(Help)6个下拉菜单。其使用方法和常用的Windows软件类似。
工具栏: 主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在Logisim中的操作。
元件库: 提供了数字系统逻辑设计中常用的部件,包括基本的门单路(Gates)、连线(Wiring)、编/译码器(Plexers)、算术单元(Arithmetic)、存储器(Memory)、输入/输出(Input/Output)以及基本工具(Base)。Logisim软件自带的库中包含了绘制原理图用到的一些常用的基本元件。利用这些元件,可以完成大部分逻辑设计。对于一些复杂数字系统的设计,可以先利用这些常用元件设计逻辑子电路,然后再进行系统级设计。
属性区: 显示或修改被选中元件的属性。
编辑区: 逻辑设计绘图区。
缩放区: 放大/缩小编辑区。〖1〗计算机组成原理实验教程第3章开发环境[3]〖3〗1. 创建工程
选择菜单栏中的Project→Add Circuit命令,并在弹出的窗口中输入电路名称decode24,然后单击“确定”按钮,如图3.2所示。
图3.2创建工程
2. 添加元件
从上面的分析过程得知,24译码器需要用到与非门和非门两类逻辑元件。展开Logisim用户界面左侧的Gates菜单,单击NAND Gate,拖动鼠标将选中的与非门移入右侧编辑区,并放置在适当的位置,如图3.3所示。
图3.3添加元件
如图3.4所示,单击编辑区中的与非门,在界面左下方的属性区Selection中会自动出现选中模块的默认参数。根据不同设计要求,可以修改元件的属性。对于24译码器的设计,需要三输入的与非门,所以将Number Of Inputs设为3,元件标号Lable定义为u1,其余设置保持不变。
图3.4元件参数设置
其他与非门、非门的放置与参数设置和以上情况类似。如图3.5所示,依次将24译码器要用到的3个与非门和3个非门摆放在编辑区的合理位置。
图3.5元件布局
3. 添加输入/输出端口
单击工具栏中的放置输入端口,单击放置输出端口。也可以展开用户界面左侧的Wiring菜单选择图标,该图标默认为输入端口。如图3.6所示,可以通过相应的属性修改为输出端口。
图3.6添加输出端口
单击工具栏中的,放置E、A、B 3个输入端口,并在相应的属性栏中修改其名称。单击工具栏中的,放置Y3~Y0 4个输出端口,同样并在相应的属性栏中修改其名称。
通过修改某一元件属性Selection中的Facing选择项,可改变该元件的端口朝向。输入、输出端口布局如图3.7所示。
图3.7输入、输出端口布局
4. 连线
添加完所有的元件后,就可以连线了。将鼠标移至某一元件端口(注意: 出现绿色小圆圈),即可从此点引出连线,按住鼠标左键,连线会延长,松开后连线被保留下来。选中某一段连线,按键盘中的Delete键或BackSpace键就可以将其删除。如图3.8所示,最终完成24译码器的设计。单击工具栏中的,可以进行文本编辑,对设计的逻辑电路进行文本说明。
图3.824译码器逻辑图
提示:
建议在电路设计过程中先放置元件,后连线。
在编辑()状态,当鼠标为一个小绿圆圈时,单击它开始画线。
连线的起点、终点很重要,必须是对应元件上的“小圆点”处。
电路设计过程中,有时发现有些连线是蓝色或灰色的,这不是大问题,但是在完成设计以后,如果还有蓝色或灰色的连线,就说明肯定有错误发生。
正确完成连线后,所有的连线颜色都应该自动变成亮绿或者暗绿色。如果为其他颜色,请参考Logisim环境下线条颜色的说明检查并修改连线。Logisim环境下,线条颜色说明如下。
灰色: 可以说是无用线,与任何器件都没有连接。
蓝色: 1bit数据线,悬空,没有驱动。
暗绿色: 逻辑0。
亮绿色: 逻辑1。
黑色: 多位逻辑线。
红色: 错误的逻辑值。出现这种情况一般是: 逻辑门没有输入或输入不正确,导致输出有问题;或者两个器件的输出同时连接到该线。
橙色: 线宽不匹配,这是最常出现的一种错误。
图3.9中,由于u2器件的a输入端为悬空状态,所以输出显示为红色。
图3.9输入悬空
图3.10中,由于u2器件的a输入端为不确定状态X,所以输出也显示为红色。
图3.10输入逻辑不正确
图3.11中,由于u2器件的a输入端同时接收u4、u5的输出驱动,所以导致u2器件的输出为红色。
图3.11两个器件同时驱动
将图3.11中u2器件的a输入引脚与输入信号x连接后,不正确的颜色(红色)连线自动变为正确的颜色(暗绿色、亮绿色),如图3.12所示。
图3.12修改正确的电路
3.1.3仿真测试
如图3.13所示,选择工具栏中的手型标志(鼠标移至此处时会出现Change values within circuit(Ctrl1)字样),将编辑状态改为测试状态。选中某一输入模块,单击鼠标改变输入模块(Pin)的值,就可以实时观察测试的结果。(注意: 一般输入有0、1、X 3种状态,其中X为高阻态,也可以设置Selection的Threestate选项,取消三态。)
图3.13选择测试状态
例如,将E设为1、A设为0、B设为0时,测试结果如图3.14所示。
图3.14测试过程(E=1为无效状态)
图3.14表示24译码器使能端无效(E=1)时,4个输出端(Y3~Y0)均为无效状态(全为1)。当使能端有效(E=0)、AB=00时,对24译码器测试的结果如图3.15所示。
图3.15测试结果(E=0, AB=00)
按照上述方法对24译码器的功能进行全面测试,测试结果与24译码器的功能如果不符,请检查设计的正确性。