实验二 龙芯平台组合逻辑电路实验HEBUT

 

实验项目名称

实验二 龙芯平台组合逻辑电路实验

实验成绩

D.D.D.

专业班级

实验日期

   2023519

一、实验目的

1. 熟悉龙芯实验平台;

2. 熟悉Vivado软件使用及fpga编程过程;

3. 熟悉数码管原理;

3. 掌握组合逻辑设计,熟悉数码管工作原理以及二进制与BCD码的转换。

二、实验内容

BCD码转换显示为10进制,即(0-9),从拨码开关输入二进制数,数码管显示输出的BCD码。

三、实验过程

实验过程包含:

1.完整的再现实验过程,尤其Vivado软件使用流程;

2. 各阶段形成的文件代码逐行注释;

3. 在实验内容实现过程中,需有明确的列表给出8421BCD码与7段数码管输入的对应关系。

实验过程:

1.首先了解BCD码的编码原则,以及与10进制之间的关系,明白实验要求中用一个7段共阴极数码管(它的二进制表示中,左边第 1 个比特位为数码管 dp 端口控制位,最右边第 7 个比特位为数码管 a 端口控制位,依次类推,其中 1 代表该端口需要激活,0 则代表该端口不需要激活。)显示十进制数值的具体内容(显示0-9),如下图;

BCD码

10进制数

对应数码管编号

BCD码

10进制数

对应数码管编号

0000

0

01111110

0101

5

01011011

0001

1

00110000

0110

6

01011111

0010

2

01101101

0111

7

01110000

0011

3

01111001

1000

8

01111111

0100

4

00110011

1001

9

01111011

2.了解7段共阴极数码管是如何显示的,共阴极数码管在控制端输入高电平,则数码管点 亮;输入低电平,则数码管熄灭。并理解弄清针脚的对应关系;

3.使用Vivado2022.2进行操作,按照一般过程,创建project,添加源文件,分析.v与.xdc分别不同的作用;

4.理解实验平台中,代码含义与其具体的功能,根据BCD码和10进制数的对应关系(问号和冒号组成了条件运算符,用于根据条件为真或为假的情况返回不同的值。如果条件为真,将返回冒号后面的内容,为假则继续向下判断)添加.v文件,输入代码:

```

//例如8'b01111110 中8表示八位数据位宽,b表示二进制,01111110表示七段数码管上显示数字 0 所需的控制码字。

`timescale 1ns / 1ps // 定义模块的时间刻度

module BCD(

input [3:0] bcd, // ,开辟4位输入,输入 4 位的 BCD

output [7:0] seg7 // 开辟8位输出,对应7段共阴极数码管针脚(小数点所对应针脚后面无论哪种情况,均为0),输出 8 位的七段数码管码字

);

assign seg7= // 将输入的 BCD 码转换为七段数码管的对应码字并赋值给输出,即赋值给8位输出

{bcd ==4'b0000}?8'b01111110 ://当输入为0000时,为真,将问号后的值传给seg7,下面同理

{bcd ==4'b0001}?8'b00110000 ://1

{bcd ==4'b0010}?8'b01101101 ://2

{bcd ==4'b0011}?8'b01111001 ://3

{bcd ==4'b0100}?8'b00110011 ://4

{bcd ==4'b0101}?8'b01011011 ://5

{bcd ==4'b0110}?8'b01011111 ://6

{bcd ==4'b0111}?8'b01110000 ://7

{bcd ==4'b1000}?8'b01111111 ://8

{bcd ==4'b1001}?8'b01111011 ://9

8'b01111011;//9 // BCD 码不能大于 9,超出位9,该行赋值为 9 的码字

endmodule

```

5.根据引脚与其他要求,以及代码含义,创建.xdc文件,可以通过调整I/O Ports生成;其代码通过 set_property 命令设置物理引脚与开发板端口的映射关系。PACKAGE_PIN 参数表示要映射的物理引脚的名称。IOSTANDARD 参数表示该物理引脚所使用的电平标准,LVCMOS33 为 3.3V CMOS 电平标准。get_ports 命令表示从 RTL 组件中的某个端口获取其名称。将输入引脚 bcd 的每一位与开发板上对应的 T3、J3、M2 和 P1 引脚连接,将输出引脚 seg7 的每一段与开发板上对应的 B19、D19、B21、A19、E18、C19、B17 和 C17 引脚连接。(代码对于空格或者回车敏感,需要注意空格的数目)代码以及注释如下:

set_property -dict {PACKAGE_PIN T3 IOSTANDARD LVCMOS33} [get_ports {bcd [0]}]将开发板上的 T3 引脚与输入信号 bcd 的第 0 位端口连接,并将 IO 标准设置为 LVCMOS33,下同。

set_property -dict {PACKAGE_PIN J3 IOSTANDARD LVCMOS33} [get_ports {bcd [1]}]

set_property -dict {PACKAGE_PIN M2 IOSTANDARD LVCMOS33} [get_ports {bcd [2]}]

set_property -dict {PACKAGE_PIN P1 IOSTANDARD LVCMOS33} [get_ports {bcd [3]}]

set_property -dict {PACKAGE_PIN B19 IOSTANDARD LVCMOS33} [get_ports { seg7[7]}]

set_property -dict {PACKAGE_PIN D19 IOSTANDARD LVCMOS33} [get_ports { seg7[4]}]

set_property -dict {PACKAGE_PIN B21 IOSTANDARD LVCMOS33} [get_ports { seg7[3]}]

set_property -dict {PACKAGE_PIN A19 IOSTANDARD LVCMOS33} [get_ports { seg7[2]}]

set_property -dict {PACKAGE_PIN E18 IOSTANDARD LVCMOS33} [get_ports { seg7[5]}]

set_property -dict {PACKAGE_PIN C19 IOSTANDARD LVCMOS33} [get_ports { seg7[6]}]

set_property -dict {PACKAGE_PIN B17 IOSTANDARD LVCMOS33} [get_ports { seg7[1]}]

set_property -dict {PACKAGE_PIN C17 IOSTANDARD LVCMOS33} [get_ports { seg7[0]}]

6.尝试运行代码,先后运行“Run Synthesis”和“Run Implementation”,检查代码是否报错或者出现“Critical Warning”然后通过审视“Message”框进行调整与修改,直至没有报错,可成功运行为止。

7.点击“Generate Bitstream”生成最终的实验所需的.bit比特流文件,然后将其上传至在线实验平台,按照上面8421BCD码与7段数码管输入的对应关系进行测试,测试通过则实验结束。

四、实验的分析与思考

问题与原因:

1.实验所用软件的功能不熟悉,无法流畅的进行操作;

2.有些报错信息无法读懂,很难找到解决方式;

3.无法找到.bit文件位置。

解决方式:

1.博闻强识英语单词,仔细查阅实验指导书对于本软件的解释与说明;

2.反复确定代码书写是否有误,检查引脚与代码的对应关系,仔细查找.xdc文件中空格数目;

3.通过计算机的查找功能,直接搜索.bit,寻找此文件,并上传。

你可能感兴趣的:(fpga开发)