【FPGA】VHDL:八段码到8421BCD码转换电路

news2025/1/19 11:09:57

目录

EDA设计基础练习题 :

实验要求如下:

代码

八段码到8421BCD码转换电路

8421BCD码到八段码转换电路

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

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

特别注意


软件:Quartus II 13.0 (64-bit)

语言:VHDL


EDA设计基础练习题

4、八段码到8421BCD码转换电路(以共阳极数码管为例)。

58421BCD码到八段码转换电路(以共阴极数码管为例)。


实验要求如下:

1、程序设计:编写完整实验程序;注明端口名称及意义;

2、仿真验证:编辑程序、编译、仿真;提交全部程序、文件及工程建立结果界面、编译成功界面、功能仿真结果波形图;注意仿真图需能够看出来工作过程及实现的功能

编码对象

8421BCD

共阳极八段码

共阴极八段码

Q8Q4Q2Q1

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 IS
	BEGIN
      PROCESS (input_Yang)
         BEGIN
         --八段码到8421BCD码转换电路(以共阳极数码管为例)

			CASE input_Yang IS
				WHEN "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 IS
	BEGIN
      PROCESS (Input_8421BCD)
         BEGIN
         --5、8421BCD码到八段码转换电路(以共阴极数码管为例)

			CASE Input_8421BCD IS
				WHEN "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 条件句 THEN
	IF 条件句 THEN
	顺序语句;
	END IF;
END IF;
第四种是if语句嵌套使用,多用于多个情况组合判断,例如clk电路
------------------------

IF 条件句 THEN
	顺序语句;
END IF;
IF 条件句 THEN
	顺序语句;
END IF;
第五种是if语句并行执行

CASE-WHEN语句写法

CASE 多值表达式 IS
	WHEN 选择值 => 被赋值变量 <=赋值变量;
	WHEN 选择值 => 被赋值变量 <=赋值变量;
	WHEN 选择值 => 被赋值变量 <=赋值变量;
	...
	WHEN OTHERS =>被赋值变量 <=赋值变量;
END CASE

本代码纯自己手敲,拒绝白嫖!

参考文章:http://t.csdnimg.cn/h4KK1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1447379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

书生谱语-基于 InternLM 和 LangChain 搭建知识库

大语言模型与外挂知识库&#xff08;RAG&#xff09;的优缺点 RAG方案构建与优化 作业 在创建web_demo时&#xff0c;需要根据教程将服务器端口映射到本地端口&#xff0c;另外需要将链接的demo从服务器中复制出来&#xff0c;不要直接从服务器打开demo页面&#xff0c;不然会…

Blazor OIDC 单点登录授权实例5 - 独立SSR App (net8 webapp ) 端授权

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor OIDC 单点登录授权实例2-登录信息组件wasmBlazor OIDC 单点登录授权实例3-服务端管理组件Blazor OIDC 单点登录授权实例4 …

低资源学习与知识图谱:构建与应用

目录 前言1 低资源学习方法1.1 数据增强1.2 特征增强1.3 模型增强 2 低资源知识图谱构建与推理2.1 元关系学习2.2 对抗学习2.3 零样本关系抽取2.4 零样本学习与迁移学习2.5 零样本学习与辅助信息 3 基于知识图谱的低资源学习应用3.1 零样本图像分类3.2 知识增强的零样本学习3.3…

鸿蒙小案例-你画我猜

鸿蒙小案例-你画我猜 1.准备组件(组件布局) 2.实现跟随鼠标画笔画出图案功能 3.实现复制上面的画笔的图案功能 4.其他小功能1.组件的准备 画布的组件官方给的API是Canvas&#xff0c;需要传递一个参数CanvasRenderingContext2D 直接搜索API 使用官方案例 private settings: …

【GO语言卵细胞级别教程】05.项目创建和函数讲解

感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新 目录&#xff1a; 感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 4.导入包4.1 基本知识4.2 注意事项 5.init函数6.匿名函数 0.创建项目 创建目录 …

力扣精选算法100道——矩阵区域和 (前缀和专题)

目录 &#x1f388;了解题意 &#x1f388;算法原理 &#x1f388;实现代码 &#x1f388;了解题意 给定一个大小为 m x n 的矩阵 mat 和一个整数 k&#xff0c;你需要计算一个新的矩阵 answer&#xff0c;其中每个 answer[i][j] 表示矩阵 mat 中以坐标 (i, j) 为中心、边…

JavaScript 事件循环:Event Loop

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 事件循环 是 web 开发中的一个核心概念&#xff0c;它是 JavaScript…

【Linux】线程概念和线程控制

线程概念 一、理解线程1. Linux中的线程2. 重新定义线程和进程3. 进程地址空间之页表4. 线程和进程切换5. 线程的优点6. 线程的缺点7. 线程异常8. 线程用途9. 线程和进程 二、线程控制1. pthread 线程库&#xff08;1&#xff09;pthread_create()&#xff08;2&#xff09;pth…

[Doris] Doris的安装和部署 (二)

文章目录 1.安装要求1.1 Linux操作系统要求1.2 软件需求1.3 注意事项1.4 内部端口 2.集群部署2.1 操作系统安装要求2.2 下载安装包2.3 解压2.4 配置FE2.5 配置BE2.6 添加BE2.7 FE 扩容和缩容2.8 Doris 集群群起脚本 3.图形化 1.安装要求 1.1 Linux操作系统要求 1.2 软件需求 1…

Acwing---842.排列数字

排列数字 1.题目2.基本思想3.代码实现 1.题目 给定一个整数 n&#xff0c;将数字 1∼n排成一排&#xff0c;将会有很多种排列方法。 现在&#xff0c;请你按照字典序将所有的排列方法输出。 输入格式 共一行&#xff0c;包含一个整数 n。 输出格式 按字典序输出所有排列方案…

mysql Day05

sql性能分析 sql执行频率 show global status like Com_______ 慢查询日志 执行时间超过10秒的sql语句 profile详情 show profiles帮助我们了解时间都耗费到哪里了 #查看每一条sql的耗时情况 show profiles#查看指定query_id的sql语句各个阶段的耗时情况 show profile fo…

【电路笔记】-并联电感

并联电感 文章目录 并联电感1、概述2、并联电感示例13、互耦并联电感器4、并联电感示例25、并联电感示例36、总结当电感器的两个端子分别连接到另一个或多个电感器的每个端子时,电感器被称为并联连接在一起。 1、概述 所有并联电感器上的压降将是相同的。 然后,并联的电感器…

MATLAB 1:基础知识

MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这六种基本的数据类型都是按照数组形式存储和操作的。 MATLAB中还有两种用于高级交叉编程的数据类型&#xff0c;分别是用户自定义的面向对象的用户类类型和Java类类型。 1.1.1数值类…

java微服务面试篇

目录 目录 SpringCloud Spring Cloud 的5大组件 服务注册 Eureka Nacos Eureka和Nacos的对比 负载均衡 负载均衡流程 Ribbon负载均衡策略 自定义负载均衡策略 熔断、降级 服务雪崩 服务降级 服务熔断 服务监控 为什么需要监控 服务监控的组件 skywalking 业务…

【白话前端】快速区分webGL,webGPU,unity3D和UE4

在3D图形渲染的渲染领域&#xff0c;很多友友们对上述概念傻傻分不清&#xff0c;站在前端开发角度&#xff0c;我用简单语言说下&#xff0c;结论在文章最后。 一、四者都能进行3D图形渲染 它们之间有一些区别&#xff0c;下面我将对它们进行简单的区分&#xff1a; WebGPU&a…

【STM32 CubeMX】HAL库的本质读写寄存器

文章目录 前言一、HAL库的本质1.1 HAL库的本质是操作寄存器1.2 自己实现HAL_GPIO_WritePin寄存器通过寄存器的操作点灯代码概况Port bit set/reset register寄存器 总结 前言 在嵌入式系统开发中&#xff0c;HAL&#xff08;Hardware Abstraction Layer&#xff09;库是一个重…

HTML世界之第二重天

目录 一、HTML 格式化 1.HTML 文本格式化标签 2.HTML "计算机输出" 标签 3.HTML 引文, 引用, 及标签定义 二、HTML 链接 1.HTML 链接 2.HTML 超链接 3.HTML 链接语法 4.文本链接 5.图像链接 6.锚点链接 7.下载链接 8.Target 属性 9.Id 属性 三、HTML …

GPT4:画一只小怪兽,但是不断升级

请你画一只1级的萌怪兽 请你画一只3级的萌怪兽 请你画一只5级的小怪兽 请你画一只10级的小怪兽 请你画一只50级的怪兽 请你画一只100级的怪兽 怪兽被闪电劈了一下&#xff0c;变成了一只0.1级的可爱小怪兽

UI自动刷新大法:DataBinding数据绑定

之前我们讲了DataBinding在Activity、Fragment、RecyclerView中的基础使用&#xff0c;而那些常规使用方法里&#xff0c;每当绑定的变量发生数据变化时&#xff0c;都需要ViewDataBinding重新设值才会刷新对应UI。而DataBinding通过内部实现的观察者模式来进行自动刷新UI&…

理解JAVA EE设计模式

理解JAVA EE设计模式 在Web应用程序的设计和开发阶段,开发人员在开发类似的项目时可能会遇到相似的问题。每名开发人员可能会遇到的问题找出不同或相似的解决方案。但是,这导致一些时间和精力浪费在为相似的问题寻找解决方案上。因此,要啊节省时间和精力,需要记录常见问题…