准备

通过Logisim的官网下载适合你机器的Logisim的软件,启动Logisim应用程序(Logisim可能有点bug,如果程序运行诡异,可能内部已经奔溃,最好的解决方法是重新启动它)。

Logisim 高阶使用

先介绍两个有用的Logisim的功能,对后续实验会很有帮助。

Tunnel

Tunnel允许你绘制“隐形线”将两个点绑定在一起。Tunnel根据分配给线的标签来分组,这写标签是区分大小写的,他们用于连接线,如图所示:

要小心电线通过Tunnel与哪些电线相连,反过来也可以,如图:

Splitter

顾名思义,就是分离器,将n位输入,分成m组输出(组数和每组成员都是可以调节的)。其实它也能够反过来用,即将n位输入合成一个n位的输出。

下面这个,就是将一个16位数,整体循环右移两位。

Extenders 扩展器

在更改连线宽度时,为了清晰起见,应使用Bit extender 位扩展器。

例如考虑将8位扩展成16位,一种做法是利用Splitter,将原数与00000000合并,如图

下面有一种更简便的做法,更易于阅读,并且不容易出错

在考虑丢弃比特位情况下,它可以做着“相反”的工作

实验

要求:根据你对Splitter和多路复用器的知识和经验,你可以实现一个非平凡的组合逻辑块:rotr,代表“向右循环“,rotr A,B表示将输入A的位模式”向右循环“B位。

例如,A为0bc110101,B为ob0101(即十进制5),则该电路块的输出为ob110101110101,请注意,最右边的5位从值的右端循环到左端。

在RTL中,该操作类似于"R = A >> B || A << (16 - B)"。

允许使用 除Shift位移器以外 的任何组合逻辑电路,在main的子电路中使用你的rotr子电路。

提示一:在开始接线之前,你应该仔细考虑如何将此问题分解为较小的问题并将它们连接在 一起。在实现 rotr 时,可以随意使用其他子电路。如果你不这样做,等着后悔吧。

提示二:虽然我们给你了 rotr 的 RTL 表示,但这并不意味着它是看待这个问题的最佳方式。 想想 B 的输入位并考虑如何有效地使用 splitter!

提示三::如果使用一个大的 splitter 接线会很混乱,有时可以将多个 splitter 串起来,事情会 更加局部化和整洁。例如,将 1 个输入分离成 16 个输出可以用一个 splitter 分出 4 个分支, 每个分支分别到一个有四个分支的 splitter。

思路

首先分别制作循环右移1位、2位、4位、8位的子电路(记得考虑子电路复用),其中右移1位可以用Splitter分离出16位,然后错一位连接再用Splitter合并。

将B的4位分离出来,分别作4个2-to-1-MUX的使能端。

my lab这个我写的,有错误欢迎指出,谢谢!

Logisim的使用的更多相关文章

  1. logisim自动生成电路

    之前再做有关logisim有关的实验时,一直在傻乎乎地连线,而我是看了mooc有关的视频时,才知道logisim有自动连线的功能. 自动连线需要事先知道输入与输出的真值表或者全部的表达式,将其填入lo ...

  2. 【Logisim实验】构建立即数-随机存储器-寄存器的传送

    关于Logisim Logisim在仿真软件行列中算是比较直观的软件了,它能做的事情有很多,唯一不足的是硬件描述语言的支持,总体上来说适合比较底层的仿真,依赖于Hex值,通过线路逻辑设计能够较好的 关 ...

  3. 使用logisim搭建单周期CPU与添加指令

    使用logisim搭建单周期CPU与添加指令 搭建 总设计 借用高老板的图,我们只需要分别做出PC.NPC.IM.RF.EXT.ALU.DM.Controller模块即可,再按图连线,最后进行控制信号 ...

  4. logisim元件清单

  5. ubuntu16.04中可以用于教学的有趣的应用

    ubuntu16.04中可以用于教学的有趣的应用 在ubuntu自带的软件中心里,内置了非常丰富的教育应用,可以用于物理,化学等科学课教学,只选取我用过用于教学的软件,优秀的软件不止这些,可以慢慢发掘 ...

  6. 【从零开始自制CPU之学习篇00】开篇

    从今天开始决定用面包板制作一个8位的CPU,实现几个简单的指令.我给自己分两大部分计划,第一部分是学习制作CPU的理论知识,第二部分是实践.并打算实施计划的同时用博客的方式记录下来.理论知识的部分重点 ...

  7. P4-verilog实现mips单周期CPU

    最近对学习的掌控可能出现了问题,左支右绌,p2挂了,p2.p3.p4.p5每周在计组花的连续时间少了很多,学习到的东西也少了很多,流水线都还没真正开始写,和别人比落后了一大截,随笔自然就荒废了,我得尽 ...

  8. P0-Logisim简单部件与有限状态机

    #自学了6week,pre都挂了,做了做P0课下测试,觉得自己对有限状态机概念的的理解,特别是牵扯到时序还是很模糊:状态的抽象也不够熟练:logisim和Verilog的实现也存在问题.网上针对性的l ...

  9. OO第三次博客作业(第三单元总结)

    (1)梳理JML语言的理论基础.应用工具链情况 Java 建模语言(JML)将注释添加到 Java 代码中,这样我们就可以确定方法所执行的内容,而不必说明它们如何做到这一点.有了 JML,我们就可以描 ...

随机推荐

  1. 【hdu 5418】 Victor and world

    [题目链接] 点击打开链接 [算法] 状压DP f[i][S]表示走的最后一步在i,状态为S 于是我们可以用最短路径 + 状压DP解决此题,由于不存在负边,所以可以用dijkstra+堆优化 [代码] ...

  2. .NETFramework:Cache

    ylbtech-.NETFramework:Cache 1.返回顶部 1. #region 程序集 System.Web, Version=4.0.0.0, Culture=neutral, Publ ...

  3. 图片加水印文字,logo。生成缩略图

    简单JSP代码 图片加水银文字 try { String path = request.getRealPath("images\\01.jpg"); out.print(path) ...

  4. eclipse与maven配置

    一.配置maven环境 电脑上需安装java环境,安装JDK1.7 + 版本 (将JAVA_HOME/bin 配置环境变量path ) 配置 MAVEN_HOME 将 %MAVEN_HOME%/bin ...

  5. mfc基于对话框的应用程序,如何设置初始对话框大小,移动控件位置

    void MmPLEntPropertyDlg::SetInitDialogSize() { CRect rectDlg; GetWindowRect(rectDlg);//x,y为对话框左上角的坐标 ...

  6. bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排(状压dfs)

    1725: [Usaco2006 Nov]Corn Fields牧场的安排 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1122  Solved: 80 ...

  7. P5110 块速递推

    传送门 为啥我就没看出来有循环节呢-- 打表可得,这个数列是有循环节的,循环节为\(10^9+6\),然后分块预处理,即取\(k=sqrt(10^9+6)\),然后分别预处理出转移矩阵\(A\)的\( ...

  8. spring简介、容器、IOC

    对IOC的理解: 在平时的java应用开发中,我们要实现某一个功能或者说是完成某个业务逻辑时至少需要两个或以上的对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要 ...

  9. Codeforces 1108F(克鲁斯卡尔的理解)

    最小生成树会多样的情况是:两个或多个边等长且连通同样的两个并查集块. 所以可以跑一遍克鲁斯卡尔,每次把当前等长的边数出来,注意不要边找边并查,因为有一部分边是正常跑生成树我们也不会要他的,这种直接跳了 ...

  10. [WOJ2549]逻辑的连通性

    题目描述: 数学中,假如有命题 p 一定能推出命题 q,则称 p 是 q 的充分条件,q 是 p 的必要 条件. 特别的,当 p 既是 q 的充分条件,又是 q 的必要条件时,称 p 和 q 互为 充 ...