题目要求:

看到题目,很多小伙伴可能不知道高阻态是个啥玩意咧(尤其是我们计院这些不懂硬件的学生),这里普及一下高阻态的概念:

高阻态是数字电路三态门中输出状态的一种,它的输出既不是高电平也不是低电平,相当于浮空状态。如果高阻态再输入下一级电路的话,对下级电路无任何影响,等同于没接入上级电路。如果用万用表测的话,有可能是高电平也有可能是低电平。

在verilog中,高阻态用z表示,比如4位寄存器,如果想使其每一位输出无效(即高阻态),则赋值语句是: v = 4'bzzz

其余的功能就非常好实现了,这里采用行为建模的方式,类似于C语言的算法,便于各位计院大佬理解;且代码简洁,干净利落!

代码如下:

module Unidad_Logica_de_Algoritmo(op0, op1, s, oe, clk, r);input clk, oe; // OE是使能信号,低电平有效input[3:0] op0; // 第一个操作数input[3:0] op1; // 第二个操作数input[2:0] s; // 选择开关,不同的值(具体见题目描述)进行不同的运算output[3:0] r; // 输出值reg[3:0] r; // 因为r在always代码块中被赋值,所以需要定义为寄存器类型always @(posedge clk) // D触发器上升沿触发beginif(oe == 1'b1)beginr = 4'bzzzz; // 输出高阻态endelsebeginif(s == 3'b000) // PLUSbeginr <= op0 + op1;endelse if(s == 3'b001) // MINUSbeginr <= op0 - op1;endelse if(s == 3'b100) // ANDbeginr <= op0 & op1;endelse if(s == 3'b101) // ORbeginr <= op0 | op1;endelse if(s == 3'b110) // XORbeginr <= op0 ^ op1;endendend
endmodule

波形图模拟仿真如下:

1. 高阻态情况:

2. 异或:

3. 按位或:

4. 按位与:

5. 加法和减法:

 

2022.08.15更新:

根据逻辑函数表达式推导,我设计了一种结构与行为混合建模的方式。

这里采用带进位的四位全加器,其每一位的运算结果位和进位位通过列真值表
和画卡诺图化简的方式,推导出逻辑递推表达式,然后将它们存入各自的寄存器中,舍
弃掉最后的进位值,只保留四位寄存器中的加减运算结果,并将第一位进位初值设为 0,
表示之前没有进位。

根据第二章的分析,此处应采用带加法/减法切换功能的 4 位全加器实现。首先定义
进位位

Quartus模拟仿真实现简单的CPU逻辑运算单元相关推荐

  1. 使用POTEUS软件来进行模拟仿真 8086汇编语言花式跑马灯课程设计及代码

    一.设计目的 通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识与实际相联,更进一步地深入学习8255A.8086.8253等芯片的相关知识,以及学习使用POTEUS软 ...

  2. 配置ARM虚拟机_使用qemu建立mini2440的模拟仿真环境

    编者按: 参考文章&课程: leao :用qemu建立mini2440的模拟仿真环境 https://www.cnblogs.com/jinmu190/archive/2011/03/21/1 ...

  3. 【Python与数学建模】蒙特卡洛模拟仿真(附完整详细代码)

    [Python与数学建模]蒙特卡洛模拟&仿真 零.前言 引例:投针实验 试验描述: 试验分析: 代码实现 蒙特卡洛模拟&仿真的基本介绍 应用实例 实例一.三门问题 问题描述 问题分析与 ...

  4. 雅马哈机器人编程讲解_YAMAHA 机器人3D模拟仿真讲解

    本文主要讲解如何进行3D 模拟仿真功能,该功能为刚刚开发的,文章介绍最为简单的搬运功能,大家可以按照博主的步骤试一试,应该是可以完成的,文章较长,图片较多,建议收藏分享. " 01 - 准备 ...

  5. Unity实现模拟仿真飞机起飞降落效果

    Unity实现模拟仿真飞机起飞降落效果 前言 在最近的项目中,我实现了一个简单的飞机起飞.降落功能,运用了初中物理速度.加速度,以及Unity的Translate函数实现的.实现的难度一般,效果还可以 ...

  6. 超声系统前端理论与模拟仿真

    作者:蒋志强   本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强 好像前段时间CSDN不可以贴图片,好久没写点东西了.每年两届的医博会,上周在深圳结束.这次医博会和以往一样,热闹 ...

  7. 生物细胞繁衍生存模拟仿真实验

    生物细胞繁衍生存模拟仿真实验 原定题目给的以5为界,我们为方便算法实现依据的是简单生命游戏,对于其周围数目以3为界 约束条件 (1)如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡: (2 ...

  8. 全站仪模拟仿真实训系统_地高铁车站AFC模拟仿真教学实训系统在高职院校存在感到底有多强...

    地高铁车站AFC模拟仿真教学实训系统在地铁和高铁自动售检票系统软硬件解决方案的基础上,基于集计算机技术.信息收集和处理技术.机械制造于一体的自动化售票.检票系统,具有很强的智能化功能.自动售检票系统的 ...

  9. 程序模拟抽奖流程图_一道与联欢会相关的概率统计题目的模拟仿真

    继续昨天的问题,回顾一下相应的规则. 1. 同学按座位号依次进行抽签: 2. 抽签过程中抽到的同学不能为之前已经抽到的同学: 3. 按照昨天的规则,为了计算简便,可以抽到自己. 那么根据昨天的分析,我 ...

最新文章

  1. 图灵奖得主LeCun:不需要监督的AI才是未来!
  2. 干货丨从起源到具体算法,这是一份适合所有人读的深度学习综述论文
  3. Spring源码分析之 lazy-init 实现原理
  4. 2010.3.28 OA 项目组工作报告
  5. 【多线程基础】- 多个线程顺序打印ABC
  6. osgi 如何引入包_OSGi Testsuite:引入类名过滤器
  7. 江西理工大学 微型计算机原理,江西理工大学-微机原理考试(wenwei)作业.docx
  8. python获取手机通知栏消息_Python编写简单的通知栏脚本启动工具
  9. 大数据环境下的存储系统构建:挑战、方法和趋势
  10. 云小课 |选定合适的证书,做“有证”的合规域名
  11. 小学生机器人挑战赛_厉害了我的小学生!德阳中小学生机器人大赛
  12. springmvc配置拦截器及测试详解
  13. 2022-2028全球运维安全管理行业调研及趋势分析报告
  14. chloe.mysql_Chloe.ORM框架应用实践
  15. 电脑无故重启很卡(深度相机也用不了)
  16. i9 12900k参数 i9 12900k核显相当于什么水平
  17. 5G常见缩略语大全(一)
  18. 如何将mp4视频压缩到最小?
  19. Java中的Switch用法
  20. Linux中软件管理的yum命令

热门文章

  1. JavaScript 使用canvas绘制圆角矩形边框
  2. 分享一款自己开发的串口调试助手(macOS系统,界面简介,使用方便)
  3. 144 phpstorm如何实现ctrl+s 自动格式化代码
  4. Cocos2d-JS游戏《仙侠道》主程陈剑:以游戏圆大侠梦
  5. Ubuntu下使用ipmsg(飞鸽传书)
  6. 2021中国一流大学名单(30所)和中国大学综合实力700强出炉!
  7. js选择文件进行导入(FileSaver.js)
  8. 阿里妈妈广告点击转化率(CTR)预估项目(附github代码)
  9. 2.45GHz天线初始尺寸设定
  10. HFSS双频单极子印刷天线