当前位置: 首页 > news >正文

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

目录

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 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

http://www.lryc.cn/news/299233.html

相关文章:

  • docker安装、运行
  • 新型RedAlert勒索病毒针对VMWare ESXi服务器
  • qt-C++笔记之判断一个QLabel上有没有load图片
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Menu组件
  • vue三种路由守卫详解
  • 【Linux】线程概念和线程控制
  • maven创建webapp+Freemarker组件的实现
  • Stable Diffusion 模型下载:Samaritan 3d Cartoon SDXL(撒玛利亚人 3d 卡通 SDXL)
  • Oracle系列之十:Oracle正则表达式
  • php基础学习之运算符(重点在连接符和错误抑制符)
  • 【CC工具箱1.2.0】更新_免费无套路,60+个工具,原码放出
  • Java 将TXT文本文件转换为PDF文件
  • Sketch 99.1 for macOS
  • Apache 神禹(shenyu)源码阅读(一)——Admin向Gateway的数据同步(Admin端)
  • Prompt Tuning:深度解读一种新的微调范式
  • Unity3d Shader篇(五)— Phong片元高光反射着色器
  • sql求解连续两个以上的空座位
  • 【链表】-Lc146-实现LRU(双向循环链表)
  • MYSQL学习笔记:MYSQL存储引擎
  • Bitcoin Bridge:治愈还是诅咒?
  • Netty应用(七) 之 Handler Netty服务端编程总结
  • LeetCode、1268. 搜索推荐系统【中等,前缀树+优先队列、排序+前缀匹配】
  • 计算机视觉基础:矩阵运算
  • Gateway中Spring Security6统一处理CORS
  • 突破编程_C++_基础教程(输入、输出与文件)
  • UE的 HUD 类中的必备方法和属性
  • 单片机的认识
  • 转发:udig安装 用来为geoserver上shp地图配置显示样式 颜色
  • Linux--常用命令(详解)
  • SouthLeetCode-打卡24年02月第1周