【FPGA】VHDL:八段码到8421BCD码转换电路
目录
EDA设计基础练习题 :
实验要求如下:
代码
八段码到8421BCD码转换电路
8421BCD码到八段码转换电路
八段码到8421BCD~运行结果展示
8421BCD转八段码~运行结果展示
特别注意
软件:Quartus II 13.0 (64-bit)
语言:VHDL
EDA设计基础练习题 :
4、八段码到8421BCD码转换电路(以共阳极数码管为例)。
5、8421BCD码到八段码转换电路(以共阴极数码管为例)。
实验要求如下:
1、程序设计:编写完整实验程序;注明端口名称及意义;
2、仿真验证:编辑程序、编译、仿真;提交全部程序、文件及工程建立结果界面、编译成功界面、功能仿真结果波形图;注意仿真图需能够看出来工作过程及实现的功能。
| 编码对象 | 8421BCD码 | 共阳极八段码 | 共阴极八段码 |
| Q8、Q4、Q2、Q1 | dpgfedcba | dpgfedcba | |
| 0 | 0000 | 11000000 | 00111111 |
| 1 | 0001 | 11111001 | 00000110 |
| 2 | 0010 | 10100100 | 01011011 |
| 3 | 0011 | 10110000 | 01001111 |
| 4 | 0100 | 10011001 | 01100110 |
| 5 | 0101 | 10010010 | 01101101 |
| 6 | 0110 | 10000010 | 01111101 |
| 7 | 0111 | 11111000 | 00000111 |
| 8 | 1000 | 10000000 | 01111111 |
| 9 | 1001 | 10010000 | 01101111 |
| 其他情况 | 1111 | 10111111 | 01000000 |
代码
八段码到8421BCD码转换电路
用CASE-WHEN语句编写码转换电路比较方便,对比C语言中switch-case语句
-- 编写程序4 八段码到8421BCD码转换电路(以共阳极数码管为例)
-- 码转换 -case语句library IEEE;
USE IEEE.STD_logic_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_logic_unsigned.ALL;-- 实体声明
ENTITY ShiYan7 IS PORT( input_Yang : IN STD_logic_vector(7 downto 0); output_8421BCD :out STD_logic_vector(3 downto 0));
END ShiYan7;--结构体说明
ARCHITECTURE behave OF ShiYan7 ISBEGINPROCESS (input_Yang)BEGIN--八段码到8421BCD码转换电路(以共阳极数码管为例)CASE input_Yang ISWHEN "11000000" => output_8421BCD <= "0000";WHEN "11111001" => output_8421BCD <= "0001";WHEN "10100100" => output_8421BCD <= "0010";WHEN "10110000" => output_8421BCD <= "0011";WHEN "10011001" => output_8421BCD <= "0100";WHEN "10010010" => output_8421BCD <= "0101";WHEN "10000010" => output_8421BCD <= "0110";WHEN "11111000" => output_8421BCD <= "0111";WHEN "10000000" => output_8421BCD <= "1000";WHEN "10010000" => output_8421BCD <= "1001";when others => output_8421BCD <= "1111";END CASE;END PROCESS;
END behave;
8421BCD码到八段码转换电路
-- 编写程序 5、8421BCD码到八段码转换电路(以共阴极数码管为例)。
-- 码转换 -case语句library IEEE;
USE IEEE.STD_logic_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_logic_unsigned.ALL;-- 实体声明
ENTITY ShiYan7 IS PORT( Input_8421BCD : IN STD_logic_vector(3 downto 0); Output_Yin : OUT STD_logic_vector(7 downto 0));
END ShiYan7;--结构体说明
ARCHITECTURE behave OF ShiYan7 ISBEGINPROCESS (Input_8421BCD)BEGIN--5、8421BCD码到八段码转换电路(以共阴极数码管为例)CASE Input_8421BCD ISWHEN "0000" => Output_Yin <= "00111111";WHEN "0001" => Output_Yin <= "00000110";WHEN "0010" => Output_Yin <= "01011011";WHEN "0011" => Output_Yin <= "01001111";WHEN "0100" => Output_Yin <= "01100110"; WHEN "0101" => Output_Yin <= "01101101";WHEN "0110" => Output_Yin <= "01111101";WHEN "0111" => Output_Yin <= "00000111";WHEN "1000" => Output_Yin <= "01111111";WHEN "1001" => Output_Yin <= "01101111";when others => Output_Yin <= "01000000";END CASE;END PROCESS;
END behave;
编译通过

八段码到8421BCD~运行结果展示

8421BCD转八段码~运行结果展示
这个运行结果可以自行实验
特别注意
工程名要和实体名相同
IF-ELSE语句写法
IF 条件句 THEN顺序语句;
END IF;
第一种if语句用于门闩控制,就只有一个条件句,是最简单的if语句
----------IF 条件句 THEN顺序语句;
ELSE 顺序语句;
END IF;
第二种if语句多用于二选一电路,也很简单啦
----------IF 条件句 THEN顺序语句;
ELSLF 条件句 THEN 顺序语句;.....(这里可以有很多elsif语句)
ELSE(最后一句是ELSE,要注意)顺序语句;
END IF;
第三种多用于多选择的控制,这里一定一定要注意是"**ELSIF**"而不是ELSEIF
----------IF 条件句 THENIF 条件句 THEN顺序语句;END IF;
END IF;
第四种是if语句嵌套使用,多用于多个情况组合判断,例如clk电路
------------------------IF 条件句 THEN顺序语句;
END IF;
IF 条件句 THEN顺序语句;
END IF;
第五种是if语句并行执行
CASE-WHEN语句写法
CASE 多值表达式 ISWHEN 选择值 => 被赋值变量 <=赋值变量;WHEN 选择值 => 被赋值变量 <=赋值变量;WHEN 选择值 => 被赋值变量 <=赋值变量;...WHEN OTHERS =>被赋值变量 <=赋值变量;
END CASE
本代码纯自己手敲,拒绝白嫖!

参考文章:http://t.csdnimg.cn/h4KK1
相关文章:
【FPGA】VHDL:八段码到8421BCD码转换电路
目录 EDA设计基础练习题 : 实验要求如下: 代码 八段码到8421BCD码转换电路 8421BCD码到八段码转换电路 八段码到8421BCD~运行结果展示 8421BCD转八段码~运行结果展示 特别注意 软件:Quartus II 13.0 (64-bit) 语言:VHDL E…...
docker安装、运行
1、安装 之前有docker的话,需要先卸载旧版本: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装之前需要安装yum工具: sud…...
新型RedAlert勒索病毒针对VMWare ESXi服务器
前言 RedAlert勒索病毒又称为N13V勒索病毒,是一款2022年新型的勒索病毒,最早于2022年7月被首次曝光,主要针对Windows和Linux VMWare ESXi服务器进行加密攻击,到目前为止该勒索病毒黑客组织在其暗网网站上公布了一名受害者&#x…...
qt-C++笔记之判断一个QLabel上有没有load图片
qt-C笔记之判断一个QLabel上有没有load图片 code review! 在Qt框架中,QLabel是用来显示文本或者图片的一个控件。如果你想判断一个QLabel控件上是否加载了图片,你可以检查它的pixmap属性。pixmap属性会返回一个QPixmap对象,如果没有图片被加…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Menu组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Menu组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Menu组件 以垂直列表形式显示的菜单。 子组件 包含MenuItem、MenuItemGroup子组…...
vue三种路由守卫详解
在 Vue 中,可以通过路由守卫来实现路由鉴权。Vue 提供了三种路由守卫:全局前置守卫、全局解析守卫和组件内的守卫。 全局前置守卫 通过 router.beforeEach() 方法实现,可以在路由跳转之前进行权限判断。在这个守卫中,可以根据用…...
【Linux】线程概念和线程控制
线程概念 一、理解线程1. Linux中的线程2. 重新定义线程和进程3. 进程地址空间之页表4. 线程和进程切换5. 线程的优点6. 线程的缺点7. 线程异常8. 线程用途9. 线程和进程 二、线程控制1. pthread 线程库(1)pthread_create()(2)pth…...
maven创建webapp+Freemarker组件的实现
下载安装配置maven Maven官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Maven最新版正式版官方版绿色版下载,Maven安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com/s/9QRqVv-TcUY.html链接为3.6.2-3.6.3的版本 下载解…...
Stable Diffusion 模型下载:Samaritan 3d Cartoon SDXL(撒玛利亚人 3d 卡通 SDXL)
本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...
Oracle系列之十:Oracle正则表达式
Oracle正则表达式 1. 基本语法2. POSIX字符类3. 正则表达式函数4. 常用正则表达式 正则表达式 (Regular expression) 是一种强大的文本处理工具,Oracle数据库自9i版本开始引入了正则表达式支持,可帮助开发者快速而准确地匹配、查找和替换字符串ÿ…...
php基础学习之运算符(重点在连接符和错误抑制符)
运算符总结 在各种编程语言中,常用的运算符号有这三大类: 算术运算符:,-,*,/,%位运算符:&,|,^,<<,>>赋值运算符&…...
【CC工具箱1.2.0】更新_免费无套路,60+个工具,原码放出
CC工具箱目前已经更新到1.2.0版本,完全免费无套路。 适用版本ArcGIS Pro 3.0及以上。 欢迎大家使用,反馈bug,以及提出需求和意见,时间和能力允许的话我会尽量满足要求。 如有关于工具的使用问题和需求建议,可以加下…...
Java 将TXT文本文件转换为PDF文件
与TXT文本文件,PDF文件更加专业也更适合传输,常用于正式报告、简历、合同等场合。项目中如果有使用Java将TXT文本文件转为PDF文件的需求,可以查看本文中介绍的免费实现方法。 免费Java PDF库 本文介绍的方法需要用到Free Spire.PDF for Java…...
Sketch 99.1 for macOS
Sketch 99.1 for macOS 概述 这个程序是对矢量绘图的创新性和焕然一新的看法。它特意采用了极简主义的设计,基于一个大小无限、图层自由的绘图空间,没有调色板、面板、菜单、窗口和控件。 此外,它提供了强大的矢量绘图和文本工具,…...
Apache 神禹(shenyu)源码阅读(一)——Admin向Gateway的数据同步(Admin端)
源码版本:2.6.1 单机源码启动项目 启动教程:社区新人开发者启动及开发防踩坑指南 源码阅读 前言 开了个新坑,也是第一次阅读大型项目源码,写文章记录。 在写文章前,已经跑了 Divide 插件体验了一下(体…...
Prompt Tuning:深度解读一种新的微调范式
阅读该博客,您将系统地掌握如下知识点: 什么是预训练语言模型? 什么是prompt?为什么要引入prompt?相比传统fine-tuning有什么优势? 自20年底开始,prompt的发展历程,哪些经典的代表…...
Unity3d Shader篇(五)— Phong片元高光反射着色器
文章目录 前言一、Phong片元高光反射着色器是什么?1. Phong片元高光反射着色器的工作原理2. Phong片元高光反射着色器的优缺点优点缺点 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数 三、效果四、总…...
sql求解连续两个以上的空座位
Q:查找电影院所有连续可用的座位。 返回按 seat_id 升序排序 的结果表。 测试用例的生成使得两个以上的座位连续可用。 结果表格式如下所示。 A:我们首先找出所有的空座位:1,3,4,5 按照seat_id排序(上面已…...
【链表】-Lc146-实现LRU(双向循环链表)
写在前面 最近想复习一下数据结构与算法相关的内容,找一些题来做一做。如有更好思路,欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.双向循环链表3.代码 写在后面 一、场景描述 运用你所掌握的数据结构,设计和实现一个 LRU (…...
MYSQL学习笔记:MYSQL存储引擎
MYSQL学习笔记:MYSQL存储引擎 MYSQL是插件式的存储引擎 存储引擎影响数据的存储方式 存储引擎是用来干什么的,innodb和myisam的主要区别–数据存储方式----索引 mysql> show engines; ----------------------------------------------------------…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
