如何使用logisim(4)

2019-02-20 20:28

在编译过整个工程后,如无错误,点击Start Simulation,片刻后,仿真波形输出出来,仿真结果如图,由于只是8位存储器,所以233后面的数结果会有问题,但是仿真结果与我们设计的电路所应得到的输出效果是一致的。

8, 总结

这里我们学习了利用MegaWizard添加megafunctions库中的复杂模块,学习了如何使用Node和Bus,以及如何使用节点标识取代直接连线,是原理图层次划分更加清楚,另外还有如何进行波形仿真,对设计进行有效验证,基本在Logisim中可能用到的常用功能在QuartusII设计工具中都能找到。会使用Logisim构建一个电路,相应使用QuartusII工具的原理图设计也不会有难度了,当然他们库中包含的模块还有些不同,但一般常见的标准模块QuartusII都有,而是是我们在实际设计中会用到的标准接口标准功能的模块,要好好了解熟悉他们的用法。

设计一个7段数码管的控制逻辑电路,用于控制数码管显示,后面他将作为一个子模块添加到我们的顶层设计中。 1, 7段数码管译码电路

Hex 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC

Seg(binary) 11000000 11111001 10100100 10110000 10011001 10010010 10000010 11111000 10000000 10010000 10001000 10000011 11000110

0xD 0xE 0xF

10100001 10000110 10001110

共阳极数码管编码表

有的同学可能看到真值表就开始画卡诺图了,呵呵,其实可以偷一点懒,看看图中这种实现。

通过使用选择器实现的这种译码电路,完成了一个真值表到电路的转换,并且实现结构清晰,可读性很好。

1, 创建7段数码管的子电路

为设计好的数码管译码电路创建硬件描述语言文件,点击

File——>Create/Updata——>Create HDL Design File for Current File。

为设计好的数码管译码电路创建一个封装,点击File——>Create/Updata——>Create Symbol File for Current File,这样我们在顶层设计中就可以调用这个子电路了。 2, 把子电路应用到顶层设计中

添加刚才创建的子电路,点击Assignment——>Settings,在Settings对话框中的Libraries中添加刚才子电路的目录,现在在Symbol中可以看到刚才创建的子电路模块了,我们再添加一个计数器,以及需要的输入输出引脚,完成我们的设计吧。

3, 总结

这个例子主要是联系子电路的创建以及如何将子电路应用到顶层设计中,在复杂设计中,分层设计的方法是必须要掌握的。

至此,QuartusII中的原理图设计的基本操作方法就足够我们使用了,Logisim中所能完成的操作,在QuartusII中都能够对应起来,所以建议后面的设计中,我们来参考课件中的使用Logisim设计简单CPU的方法,对应在QuartusII中实现一个真正的CPU。 由于Logisim是一个仿真软件,使用较QuartusII方便一些,可以先行做实验,然后再用QuartusII实现设计方案。

至此,我们要真正开始CPU设计了,前面的内容是给不熟悉QuartusII的同学热身用的。这里都是假定同学们已经熟悉了QuartusII基本操作,会使用原理图设计方法设计电路,并且会使用MegaWizard添加标准模块,会分层设计电路。

需要说明的是,我们选择使用原理图的设计方法,是考虑与罗老板的课件相结合,能够对照Logisim的操作,使同学们在学会使用Logisim软件仿真设计出一个CPU后,平滑的过度过来。另外原理图的设计更加直观一点,更容易入门。当然由于实际设计中主流的方式还是使用硬件设计语言,推荐大家了解一下Verilog HDL,VHDL或System C等语言。 1,设计总揽

我们这里设计的是一个简单的16位处理器(即每个指令字长为16位,寄存器也是16位),该处理器有四个寄存器($r0到$r3)。具有独立的数据和指令内存(即有两个内存,一个指令内存,一个数据内存)。

需要注意的是由于器件的限制,也为了让事情更简单一些,我们以半字(16位)为单位对内存编址。这和MIPS 不同,MIPS指令是字长是32位,而内存是以字节(8位)为单位编址。 2,准备步骤

第一步:熟悉一下QuartusII的操作,这个在前面我们已经完成了,对应于Logisim中操作都介绍到了,后面完成Proj3所需要的技术也都具备了(当然,想深入的了解数字电路设计,可能需要更多),也就是说如果能够用Logisim完成Proj3,用QuartusII实现也不再话下。 第二步:做一下相关的实验,了解QuartusII下的一些模块和组件,如何建立简单模块,如何将简单模块构建到一起,成为复杂的模块,直至成为一个系统。MegaWizard中提供的是

数字电路中常见的标准模块,我们的设计中要用到其中一些模块,所以熟悉他们,熟练应用是完成设计的前提。 3, 阅读ISA 第三步:阅读ISA

ISA(Instruction Set Architecture)是硬件设计师跟软件设计师之间的协议,他规定了硬件设计师设计的CPU所需要具备的功能,以及软件设计师所能够使用的CPU指令。 设计一个CPU首先要设计一个ISA,之后才是软硬件设计:软件设计师设计汇编器,编译器;硬件设计师设计CPU。我们需要的ISA在Proj3这里已经给出了,如下表:

通过查询 opcode字段(高四位,即15-12位)的值,可知半字编码所对应的指令。注意,表中的opcode不到16个,而funct也不到8个。原因是指令少一些,使同学们更容易实现(呵呵,好象比老师上课讲的CPU指令数还是多了很多)。

(如果需要更加细致的了解原理,请认真学习罗老板课件中关于单指令周期CPU设计的这几节课的内容。)

我们可以了解到需要实现的几个基本模块:


如何使用logisim(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:燃气工程施工组织设计最终版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: