关键词不能为空

当前您在: 主页 > 英语 >

如何使用logisim分解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 11:25
tags:

-

2021年2月28日发(作者:苏基)



Logisim


的简单入门



一,准备工作



参考:



罗老板的计算机结构与组成课程



/rjgcx/lzw/COD/



Machine Structures. Spring 2010, UC Berkeley


/~cs61c/sp10/



软件环境:



Logisim


仿真软件(需要


JAVA


虚拟机)



/~burch/logisim/



QuartusII 8.1


/



硬件环境:



PC



with Windows XP


DE2


开发板(


DE2 Development and Education Board User Manual




参考书:




关于


QuartusII


的使用教程



先来以一个与门电路的实验,


来看一下基本的操作,

< p>


Logisim


中一个与门电路生成过程如


下:



1.


按与门 的选择按钮


,添加一个与门到电路中。




2.


使用


按 钮添加一个输入引脚,用于设置输入电平。



3.


添加一个引脚,通过属性中设置


Pin


的属性为输出 :




这样得到一个输出引脚



< p>
4.


移动以上添加的元素,得到原理图


:



注意选中


按钮,此时可以拖拽连线, 那么我们把电路各部分连接如下


:



5.


接下来通过选中


按钮就可以鼠标 点击设定输入管脚上的电平为


1



0< /p>


了,输出引脚


也会相应改变,输出结果。



当然通过左下方的属性设定,


还可以设定当前选择元件的朝向,


数据位数,


输入端口数等参


数。




6.


另外推荐大 家后面设计的时候使用一下


tunnel


这个工具,代替复杂的 连线,在后面


复杂设计的地方,让你从蜘蛛网一样的连线中解脱出来,例如上面的电路可 以这样表示:




< br>图中输入,


与门模块,


输出三部分结构分的很清晰,


tunnel


的使用使我们的电路设计更加规


范,


类似


logisim


中的


tunnel


工具在其他原理图工具中类似的工具是经常见到的,


虽然名字


会有不同,用途是一样的。



7.


最后是子电路添加方法,选择


Proj ect--->A


dd Circuit…


,如下图

< p>





子电路的绘制与上面基本相同,


注意的是输入输出引脚要连接

< br>Pin


引脚,


并设定好输入输出


属性。




右击子电路选择


Edit Circuit Appearan ce


可以调整子电路的外观,通过拖拽将外观调整好,


后面加到 上层电路设计中的时候就不会显得布线拥挤了。




显然上面的要比下面的元件效果好一些。


以上描述的这些技巧与绘制规范整齐的原理图是关系密切的,


后面实际应用中设计复 杂电路


时会突出显现出来。




几个关键的地方:




1


,请尽量使用标准模块,如果需要建立自己的模块,请学习标准模块的设计风 格。



2


,请合理划分层次,清楚定义 输入输出端口,尽量使定义的风格和规范保持一致。



3


,请使用网络标识代替直接连线,会使你的原理图更加清晰易读。


< /p>


4


,为每个模块设计测试用例,用于测试和说明其使用方法。



5


,这里用的软件比罗老板课上用的版本 高一点,操作有细微差别。



打开


Qu artusII


软件,程序主界面如下:




1




新建一个工程



点击


File


——


>New Project Wizard


,打开创建新工程向导,这里你将完成工程的基本设定< /p>


选项。



1




Project name and directory


——


工程的名称与目录



2




Name of the top-level design entity


——


顶层设计实体的名称




3




Project files and libraries


——


项目文件与库



4




Target device family and device


——


目标设备的族类



5




EDA tool settings


——


EDA


工具设定



这里一般设定好工程名称和目录,


顶层设计实体名称以及目标设备族类就可以了,


其他的暂


时直接使用默认项就可以了。







2




新建一个设计文件



通过点击


File


——


>New


打开新建文件选择框,由于我们这里使用原理图描述实现的,则文


件类型选择

< p>
Design Files


——


>Block Diagram/Schematic File


,就新建了一个原理图文件,


将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。





3




编写设计文件



接下来开始在文件中绘 制原理图,这里首先完成与门的添加,点击左侧工具栏中的


Symbol


Tool


按钮,


打开


Sym bol


选择框,


选择


primitiv es


——


>logic


——

< p>
>and2



点击


OK< /p>


后即可在


原理图中添加一个


2

< p>
输入的与门了。在同样通过


Symbol Tool


中的加入和


primitives


——


>pin


——


>output


加入输 入和输出引脚,


然后在原理图中把他们用


Orthogonal


Node Tool


即导线连接起来,双击输入输出引脚,为他 们设定好名字,


pinA



pinB< /p>



pinC



就 完成了原理图中的设计。









4




编译(分析综合)



点击


Processing


——


>Start

< p>
——


>Start Analysis & Synthesis


,进行分析综合,就好像是对


程序进行编译,等待片刻,如果没有错误, 编译报告会输出出来。






5




配置管脚



接下来配置管脚,就是设定 刚才加入的输入输出管脚与实验板上


FPGA


芯片外部引脚之间


的对应关系,设定好这个,我们设计的与门电路才能通过


FPG A


外部引脚与实验板上的其


他设备连接起来,我们才好观察到电 路的设计效果。点击


Assignment


——


>Pins


,打开


Pin


P lanner


设定框,这里查看实验板的说明文件,我们使用两个拨动开关来连接输入引 脚,用


一个


led


灯来连接输出引脚, 对照说明中的表格,为


pinA



pi nB



pinC


分配

< br>PIN_N25



PIN_N26



PIN_AE23



设定好后点击


Assignment


——


>Devi ce


进入设定框,


点击


Device


and Pin Options


按钮,



Device and Pin Option


框中的


Unused Pins


标签下将


Reserve all


unused pins


设定为


As output drivingground


。因为我们的设计最终会以电路的表达形式 工


作,错误的设计极其容易导致实验板的损坏。











6




下载程序



当然我们实际设计中可能会 用到波形仿真工具进行验证,


进行时间分析验证,


甚至要设定布


局布线等工作,反复迭代修正,才能完成一个复杂电路的设计,不过这里这个与门的


demo


很简单,完成以上设计工作后,可以开始编译了,点击


Processing


——


>Start Compilation


开始吧。如果没有错误,输出编译报告,就可以准备下载到实验 板上去了。点击



Tool


——


>Programmer


,打开下载工具。这里我们选择使用


JTAG


的下载方式,注意先给


实验板上电,点 击


Start


开始,等待片刻,走完下载进度条,下载完成。< /p>






7




完成



现在你可以在实验板上通过


SW0



SW1


来 设定与门的输入了,实验板上的


LEDR0


相应


的亮或者灭。


我们实现的与门在哪呢?就在你面前实验板的芯片中,

< p>
实际上实验板的芯片中


有很多电路单元,


通过我们 的编程选择我们需要的电路单元用连线连接起来,


在通过配置引


脚连接到


FPGA


芯片的外部引脚上,


FPGA


是焊接在


PCB


板上的,


PCB


板上的铜线把


FPGA


引脚与外部设备比如开关,


发光二极管等连接起来,


我们的电路就真正的连接到了这个系统


当中了。他们之间的连接关系在图中表示出来。< /p>




8


,总结




经过了这么多繁杂的步骤,


我们仅仅完成的是一个简单的与门电 路,


好在通过这个过程我们


只是了解一下


FPGA


设计的基本过程与简单操作,熟悉了这个流程,以上步骤还是很清楚


的,而且实现一个复杂的设计也基本是沿这个过程走的。后面我们用


FP GA


实现一个


CPU


也可以这样下载到


FPGA


芯片当中,这可是一个真正的电路,真正工作的


CPU


,麻雀虽小


五脏俱全,不再是仅仅在电 脑上仿真了,你必然会满心欢喜。而且实际中,这样的设计(当


然还有一些其他的工作要 做),是能够送到工厂中去生产真正的


ASIC


专用电路,也就 是真


正的,我们能摸到能使用的


CPU


,会有这样的一天。



1




使用< /p>


MegaWizard


添加一个


RAM< /p>


模块。



RAM


模块属于原理图设计中一个较为复杂的模块,并非如一个简单的二输入与门那样直接


添加 就可以了,还有一些参数需要配置和设定。在


QuartusII


中添加一个类似


RAM


的复杂


模块需 要用到


MegaWizard


,通过使用


MegaWizard


添加一个


RAM


模块,可以了解如何用


MegaWizard


为库提供的模块 配置参数。



依然是使用


Symbol tool


打开添加模块对话框,


MagaWizard


的模块多数在


megafunctions


目录 下,我们使用的是


megafunctions


——

< p>
>storage


——


>lpm_ram_dq< /p>


,勾选上


Launch


MegaWizard Plug-In


OK



打开


MegaWizard Plug-In Manager



选择为库文件生成的文件< /p>


类型,



AHDL


语言,


VHDL


语言和


Verilo g HDL


语言三种选择,


根据需要和自己对他们的

< p>
熟悉程度选择,


设定为其生成的目录文件,


建议生 成到工程所在目录下,


并在其名称基础上


加上些有意义的后缀。


接下来是关于模块具体参数的设定,


不同的模块会有所不同,< /p>


这里请


先按照图中的配置方式选择,使用


8


位容量


32


个字的

< br>RAM


,不带有输出口寄存功能。


为了让


RAM


有一个初始值,


我们 要为其写个初始化数据文件,


下面选中


Yes, use this file for


the memory content data


,并设定好文件路径名称。下一步是生成文件的清单,最后


Fini sh


将生成模块添加到设计文件中。









2


,添加总线与提取总线上一位数据 的方法。




以上是通过


MegaWizard


添加模块的方法,用相同的方法,我们可以添加


lpm_add_sub



块。



本例中涉及到的就是以上两种模块,通过联系和实践,可以测试试验一下其 他的模块。



接下来添加输入输出引脚,这个前面介绍过,这里 有点不同的是,输出引脚是


8


位的,这


个在命名的时候后面加上


[7..0]


就表示是个


8


位的输出,例如


fib_res[7..0]


,如果要用到其中


一位就是名字加上下方括号跟标号,例如


fib_res[5]




3


,用手动按钮作为时钟信号测试。



实验板上的时钟太快了,


不利于我们观察,那就用仿真时学的办 法,加一个输入按钮,


模拟


时钟,按一下,时钟跳一下,于是加 了一个输入引脚,用于连接实验板上的按钮开关。输入


引脚后面要加一个非门,


因为实验板上松开按钮时候输入是高电平,


所以用一个非门也就是


反相器来取反向。



需要指出的是,


用手动按钮做时钟信号来测试是一个权宜的方法,


实际的设计中是不推荐 的,


包括组合电路的输出用做时钟信号都是不好的设计习惯,


因 为时序电路工作的时钟要求波形


稳定,


组合逻辑电路中产生波形 的毛刺对其工作影响较大,


造成错误的数据或不可预测的结


果。



4


,常量的加入。


< br>由于加入的


ram


模块至少含有


32


个字的存储,只需用到其中一个,地址线置零就可以了,


每 次时钟来临都进行写入操作,那么写入使能始终设为


Enable


。那么这些常量该怎么设定


呢?在原理图设计中,有


GND< /p>



VCC


两个常量,分别代表逻辑


1


和逻辑


0


,将他们 引入


到电路中就可以了,


多位数据合并到一条总线上是将各位数 据用逗号隔开,


添加到总线命名


中。



5


,让你的电路更加清晰。



前面介绍到,


当电路规模愈加复杂时,


将各模块 直接连接到一起会严重影响其清晰美观,



么推荐的方式是采用 网络标识的形式,也可以为


GND



V CC


添加一个网络标识,把他们改


名为


b1



b0


如图,那么内存地址我们可 以写为


b0 ,b0, b0, b0,b0







再把上图整理一下,看看效果是否好一点了。




6


,初始化


RAM


中数据




7


,波形仿真工具


< br>这里在学习一下使用


QuartusII


自带的波形仿真 工具,新建一个


Vector Waveform File






在图中位置右击,搜索添加


Node



Bus


,在


Insert Node or Bus


框中点击


Node F inder



钮,


弹出


Node Finder


框,


点击

List


将所有输入输出节点列出,


添加到


Selected Nodes


中,


OK





选中


clk_button


,点击工具栏的


Overwri te Clock


,在


Clock


框中 填好起始时间,结束时间,


时钟周期等参数,为其添加一个时钟输入。

< br>




在编译过整个工程后,如无错误,点击


Start Simul ation


,片刻后,仿真波形输出出来,仿


真结果如图,由于 只是


8


位存储器,所以


233


后面的数结果会有问题,但是仿真结果与我


们设计的电路所应得到的输出 效果是一致的。




8




总结



这里我们学习了利用

< p>
MegaWizard


添加


megafuncti ons


库中的复杂模块,学习了如何使用


Node



Bus


,以及如何使用节点标识取代直接连线,是 原理图层次划分更加清楚,另外还


有如何进行波形仿真,对设计进行有效验证,基本在< /p>


Logisim


中可能用到的常用功能在


QuartusII


设计工具中都能找到。


会使用


Logisim


构建一个电路,


相应使用

< p>
QuartusII


工具的


原理图设计也不会有难 度了,


当然他们库中包含的模块还有些不同,


但一般常见的标准 模块


QuartusII


都有,而是是我们在实际设计中会用到 的标准接口标准功能的模块,要好好了解


熟悉他们的用法。


< /p>


设计一个


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


共阳极数码管编码表



有的同学可能看 到真值表就开始画卡诺图了,


呵呵,


其实可以偷一点懒,


看看图中这种实现。



通过使用选择器实现的这种译码电路,


完成了一个真值表到电路的转换,

< p>
并且实现结构清晰,


可读性很好。



1




创建< /p>


7


段数码管的子电路




-


-


-


-


-


-


-


-



本文更新与2021-02-28 11:25,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/680681.html

如何使用logisim分解的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文