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

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

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

🚀题目

用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 @(*)begin
		if(k8)begin
		l4=!(k4^k3);
		l3=!(k3^k2);
		l2=!(k2^k1);
		l1=!(k1^0);
		end
		
	end
	
	
endmodule
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】图标开始烧录

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

5、实验结果

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

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值