Logism · 原码一位乘法器 实验

实验   原码一位乘法器

设计要求:

  1. 8位无符号的原码一位乘法器的实现

  2. 通过时钟驱动右移,模拟运算过程

  3. 实现脉冲控制,位移指定次数后要及时停止

  4. 结果输出给到乘积隧道

实验目的

        A.掌握寄存器、分离器、比较器等一系列新的逻辑元件使用方法

        B.学习并运用计算机原码乘法原理,在硬件电路中予以实现

        C.熟练掌握 Logisim 寄存器电路的使用

方案设计

        A.宏观设计

                a.位移次数控制
                采用计数器+比较器的硬件实现,控制右移9次即可(题目中有提示)
        这里LOAD在=0时,给到1信号;将b送入右侧寄存器中
        其他时候都=0就按照位移情况对右侧寄存器开展更新

Logism · 原码一位乘法器 实验_第1张图片

                b.位移的实现
                        采用上下四组8位宽分离器实现,左边高位右边低位,乘积右移
                最高位有八位加法器的进位输入得到,右移弹出的数据用于数据选择器
                来部署下次是+0还是+a

Logism · 原码一位乘法器 实验_第2张图片

                c.部分乘积,+a还是+0 ?
                        如上图,用低位弹出的数据01来判断下次+0+a;
                LOAD只在第一次使用触发,将y送入;其余时刻都是保存位移的部分积

Logism · 原码一位乘法器 实验_第3张图片

                d.八位加法的实现
                        采用【八位加法器】的封装,输入数据改成8位;此处x是作为常量
                调用,不会受到位移影响

Logism · 原码一位乘法器 实验_第4张图片

                e.被乘数a与乘数b的保存
                        俩寄存器,a存在x中;第一个存部分乘积,第二个存y;随着计算过程右移,xy
                会被逐步右移并替换为乘积结果;启动初始化时候x=y=0
                右移过程是不会影响到x本体的,因为我们x是作为常量调用
                位移运算过程不会修改x的数值

Logism · 原码一位乘法器 实验_第5张图片

        B.实验步骤

                a.元件测试-选择器
        具体功能:MUX二路选择,0选左侧,1选右侧
        实现方式:右侧输入控制端,下边两侧给到等待选择的数据

                b.元件测试-比较器
        具体功能:给到输入数据,满足条件输出1,其他时候都是0
        实现方式:输入数据接上端,判断标准接下端,右侧输出

Logism · 原码一位乘法器 实验_第6张图片

                c.元件测试-分离器
        具体功能:实现多位数据拆分、整合;数据是双向的,看你哪一端口输入,输入端口为主动区;可以通过面板设置,将某一位数据“分配”到指定的隧道;或者两个位数小的整合成一个多位数的数据
        实现方式:多入1出,实现整合;举例本电路中的合并过程

Logism · 原码一位乘法器 实验_第7张图片Logism · 原码一位乘法器 实验_第8张图片

1入多出,可以通过面板位数设置,将指定位数输出到对应隧道中

                d.电路搭建

Logism · 原码一位乘法器 实验_第9张图片

        C.debug - 本地测试

Logism · 原码一位乘法器 实验_第10张图片

Logism · 原码一位乘法器 实验_第11张图片

成果展示:

Logism · 原码一位乘法器 实验_第12张图片 Logism · 原码一位乘法器 实验_第13张图片

心得体会:

        这次使用Logism出现了之前数字逻辑学习中没有出现过的逻辑元件,进一步贴近了实际计算机组成的部件,是一次拓展性的探索,当然对未知事物的探索也是一件比较费劲的事情(位移器、寄存器、比较器、分离器、八位串型加法器黑盒子);我先进行了这些未知元件基本功能的测试,熟悉知道什么给到什么输入有什么输出实现了什么功能,再结合书上思想给出设计图纸;步步为营的过程虽然艰难,但是可以对纠错和实验过程进行强有力的保障。

你可能感兴趣的:(附加实验库,fpga开发)