【FPGA实验2】二进制转为格雷码
创始人
2025-06-01 01:53:50
0

关于FPGA入门实验2——二进制到格雷码的转换的一个记录

实验中作用到的仪器信息:
芯片商家:ALTERA
编程软件:Quartus II
试验箱上的芯片型号:EP4CE6E22C8N

快速导航

        • 🚀题目
        • 一、二进制转换为格雷码
        • 二、软件仿真
        • 三、试验箱实验
          • 1、分析与代码
          • 2、编译
          • 3、引脚分配
          • 4、接线与烧录
          • 4、实验结果

🚀题目

用Verilog语言设计一个4位的二进制格雷码转换电路并使用实验箱进行验证

一、二进制转换为格雷码

格雷码(循环二进制单位距离码)是任意两个相邻数的代码只有一位二进制数不同的编码,它与奇偶校验码同属可靠性编码。

4位二进制数与格雷码一一对应如下:

在这里插入图片描述
由上图可以看到:

从对应的n位二进制码字中直接得到n位格雷码码字,需要先对n位二进制的码字,从右到左,以0到n-1编号。如果二进制码字的第i位和i1位相同,则对应的格雷码的第i位为0,否则为1(当i+1n时,二进制码字的第n位被认为是0,即第n-1位不变)。如下图所示(图片来源见水印):
在这里插入图片描述

根据上面的分析,我们可以用以下的代码来实验二进制到格雷码的转换过程:

module bit2gray_2(input wire k1,     //二进制数值的最高位input wire k2,	//二进制数值的次高位input wire k3,	//二进制数值的次低位input wire k4,  //二进制数值的最低位output reg l1,	//格雷码数值的最高位output reg l2,	//格雷码数值的次高位output reg l3,	//格雷码数值的次低位output reg l4);	//格雷码数值的最低位always @(*)begin		l4=k4^k3;   //二进制的第四和第三位进行异或得到格雷码第四位l3=k3^k2;l2=k2^k1;l1=k1^0;		end	endmodule

二、软件仿真

三、试验箱实验

1、分析与代码

我们将输入的二进制数对应到按键K1到K4,将输出的格雷码对应LED灯LED1到LED4,于是我们便能够通过拨动按键设置一个二进制的数值,通过LED的亮灭情况查看对应的格雷码。

我们通过将按键K8设置为使能位,当按键K8使能时,K1到K4所对应的四位二进制码有效;同时,由于试验箱上的LED是低电平驱动,因此还需要对输出进行取反。实现代码如下:

module bit2gray_2(input wire k1,input wire k2,input wire k3,input wire k4,input wire k8,output reg l1,output reg l2,output reg l3,output reg l4);always @(*)beginif(k8)beginl4=!(k4^k3);l3=!(k3^k2);l2=!(k2^k1);l1=!(k1^0);endendendmodule
2、编译

点击菜单栏的【编译】进行编译
在这里插入图片描述

编译完成后,可以看到代码对应的RTL图如下,

在这里插入图片描述

3、引脚分配

若使用下载线将按键接口JX22连接到JP5,那么按键K1对应第59脚,按键K2对应第60脚,按键K3对应第64脚,按键K4对应第65脚,按键K8对应第69脚。

在这里插入图片描述

若使用下载线将按键接口JX5连接到JP1,那么按键L1对应第138脚,按键L2对应第137脚,按键L3对应第136脚,按键L4对应第135脚。

在这里插入图片描述

点击菜单栏的这个图标即可进行引脚分配

在这里插入图片描述

双击location列的空格即可开始每个引脚的分配,引脚分配结果如下:

在这里插入图片描述
引脚分配完成后要记得在编译一次,否则可能导致程序下载在试验箱后没有现象。

4、接线与烧录

用下载线将按键接口JX22连接到JP5,将按键接口JX5连接到JP1,JTAG接口用下载线连接到电脑的USB口。
在这里插入图片描述

点击菜单栏里的【Programer】图标开始烧录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、实验结果

【FPGA实验2】二进制转格雷码

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...