FPGA实验报告 17.docx

上传人:b****6 文档编号:2920778 上传时间:2022-11-16 格式:DOCX 页数:18 大小:20.41KB
下载 相关 举报
FPGA实验报告 17.docx_第1页
第1页 / 共18页
FPGA实验报告 17.docx_第2页
第2页 / 共18页
FPGA实验报告 17.docx_第3页
第3页 / 共18页
FPGA实验报告 17.docx_第4页
第4页 / 共18页
FPGA实验报告 17.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

FPGA实验报告 17.docx

《FPGA实验报告 17.docx》由会员分享,可在线阅读,更多相关《FPGA实验报告 17.docx(18页珍藏版)》请在冰豆网上搜索。

FPGA实验报告 17.docx

FPGA实验报告17

 

可编程逻辑器件实验报告

 

批次:

第2批

班级:

研2-124班

姓名:

陈红强

学号:

1202120919

 

一.液晶显示器显示字母或数字

1.实验要求

本次实验使用的是MachXO2-LCMXO2-1200ZE-2MG132C芯片,要求编写设计通过液晶显示器显示相应的数字或字母。

2.实验内容和步骤

学会如何使用此种芯片来实现液晶显示,首先在Lattice中新建工程和文件,并且选择对应的硬件,然后新建文件夹,将LCD_DISPLAY文件夹中的.v文件放入所新建的文件夹中,在TxetEditer中编写verilog模块代码调用seg4_7.v,clk_gen.v,LCDDight.v(实现在LCD屏幕上显示特定字符)并保存,最后进行编译,管脚分配,调试,后几步和前面实验所需步骤一致。

3.实验程序

本次试验中要对多种文件进行调用,因此在实验中要同时写好调用文件,clk_gen.v文件是用来产生时钟脉冲,seg4_7.v文件是用来表示4位二进制数如何被用来表示7段数码管及其右下方的点,lcd4digit.v被用来实现在LCD屏幕上显示特定字符,而主程序LCD.v

则被用来在数码管显示特定的字符。

此处仅给出主程序LCD.v的程序。

moduleLCD(

//inputLCDFrameclk,

//inputLCDPWMclk,

inputclk,

inputrstn,

//inputLCDDP1,

//inputLCDDP2,

//inputLCDDP3,

//inputLCDCol,

//input[7:

0]LCD1,

//input[7:

0]LCD2,

//input[7:

0]LCD3,

//input[7:

0]LCD4,

outputLCD_COM0_sig,

outputLCD_COM1_sig,

outputLCD_COM2_sig,

outputLCD_COM3_sig,

outputLCD_5_sig,

outputLCD_6_sig,

outputLCD_7_sig,

outputLCD_8_sig,

outputLCD_9_sig,

outputLCD_10_sig,

outputLCD_11_sig,

outputLCD_12_sig

);

wireLCDPWMclk;

wireLCDFrameclk;

wire[7:

0]seg_LCD1;

wire[7:

0]seg_LCD2;

wire[7:

0]seg_LCD3;

wire[7:

0]seg_LCD4;

seg4_7seg4_7_inst1(

.clk(clk),

.rst_n(rstn),

.data_in(LCD1),

.seg_out(seg_LCD1)

);

seg4_7seg4_7_inst2(

.clk(clk),

.rst_n(rstn),

.data_in(LCD2),

.seg_out(seg_LCD2)

);

seg4_7seg4_7_inst3(

.clk(clk),

.rst_n(rstn),

.data_in(LCD3),

.seg_out(seg_LCD3)

);

seg4_7seg4_7_inst4(

.clk(clk),

.rst_n(rstn),

.data_in(LCD4),

.seg_out(seg_LCD4)

);

clk_genclk_gen_inst(

.clk(clk),

.rst_n(rstn),

.clk_pwm(LCDPWMclk),

.clk_frame(LCDFrameclk)

);

LCD4DigitLCDDigit_inst(

.LCDFrameclk(LCDFrameclk),

.LCDPWMclk(LCDPWMclk),

.rstn(rstn),

.LCDDP1(1'b0),

.LCDDP2(1'b0),

.LCDDP3(1'b0),

.LCDCol(1'b0),

.LCD1(8'b11000000),

.LCD2(8'b10011001),

.LCD3(8'b10100100),

.LCD4(8'b11111001),

.LCD_COM0_sig(LCD_COM0_sig),

.LCD_COM1_sig(LCD_COM1_sig),

.LCD_COM2_sig(LCD_COM2_sig),

.LCD_COM3_sig(LCD_COM3_sig),

.LCD_5_sig(LCD_5_sig),

.LCD_6_sig(LCD_6_sig),

.LCD_7_sig(LCD_7_sig),

.LCD_8_sig(LCD_8_sig),

.LCD_9_sig(LCD_9_sig),

.LCD_10_sig(LCD_10_sig),

.LCD_11_sig(LCD_11_sig),

.LCD_12_sig(LCD_12_sig)

);

endmodule

4.管脚分配

Port

MachXo2pin

rst_n

N3

clk

A7

LCD_COM0

B14

LCD_COM1

C13

LCD_COM2

C14

LCD_COM3

D12

LCD_5

J12

LCD_6

J14

LCD_7

J13

LCD_8

K12

LCD_9

K13

LCD_10

K14

LCD_11

L14

LCD_12

M13

5.实验结果分析与总结

在本次试验中采用了一种新的包含有7段数码管芯片,因此本次试验和前几次的步骤略有不同,本次试验中首先需要调用几种外部文件,即clk_gen.v,seg4_7.v,LCD4digit.v,同时,设置输入来控制数码管及其右下方点,设置输出用来和芯片管脚链接,以使数码管显示相应字符。

在程序中,用clk来连接时钟信号端,用rstn来连接复位端,每按rstn时便可对数码管进行复位,LCD1,2,3,4则被用来和数码管相连,利用对LCD1,2,3,4进行赋值来控制数码管的显示字符,利用LCDDP1,2,3来控制右下方点,当值为1时,右下方点亮,当值为0时,右下方点灭,同时用LCDCol来控制数码管中间的两点。

对数码管显示的控制需要在LCD4Digit中进行设置,对其赋值时要注意赋值从高位到低位依次对应数码管最上端按顺时针赋值再到数码管中间位。

本次试验让我学会了如何利用一种新的芯片来显示字符,同时学会了数码管的赋值方式,以及数码管右下方点的控制方式,让我对于液晶显示器有了新的认识。

 

可编程逻辑器件实验报告

 

批次:

第2批

班级:

研2-124班

姓名:

陈红强

学号:

1202120919

 

实验七设计简易电子时钟

1.实验要求

要求设计一个简易电子时钟,实现分、秒计时功能,并且能够在控制实验板上实现液晶输出分、秒数值。

2.实验内容和步骤

学会如何使用此种芯片来实现分秒的输出功能,首先在Lattice中新建工程和文件,并且选择对应的硬件,然后新建文件夹,将LCD_DISPLAY文件夹中的.v文件放入所新建的文件夹中,在TxetEditer中编写verilog模块代码调用seg4_7.v,clk_gen.v并保存,最后进行编译,管脚分配,调试,后几步和前面实验所需步骤一致。

3.实验程序

本次试验中要对多种文件进行调用,因此在实验中要同时写好调用文件,clk_gen.v文件是用来产生时钟脉冲,seg4_7.v文件是用来表示4位二进制数如何被用来表示7段数码管及其右下方的点,lcd4digit.v被用来实现在LCD屏幕上显示特定字符,clock.v是用来和时钟脉冲连接,同时计算1s所需要的脉冲个数,在clock中进行设置,lcdshizhong.v是用来根据clock.v来调整数码管的显示字符,LCD.v则是用来在数码管中显示lcd4digit.v中设置的特定字符。

clock.v

moduleclock(

clkk,

rstn,

minute_h,

minute_l,

second_h,

second_l

);

inputclkk;

//inputclk;

inputrstn;

output[3:

0]minute_h;//分钟的高位

output[3:

0]minute_l;//分钟的低位

output[3:

0]second_h;//秒钟的高位

output[3:

0]second_l;//秒钟的低位

reg[3:

0]minute_h;

reg[3:

0]minute_l;

reg[3:

0]second_h;

reg[3:

0]second_l;

regsecond_l_flag;//秒钟低位的进位标志

regsecond_h_flag;//秒钟高位的进位标志

regminute_l_flag;//分钟低位的进位标志

//regminute_h_flag;//分钟高位的进位标志

regclk1;

//regclkk;

reg[22:

0]count;

always@(posedgeclkk)

begin

if(count==23'b10110111000110110000000)

begin

count<=0;

clk1<=~clk1;

end

else

count<=count+1'b1;

end

//end

/*//实验时选为2hz的时钟频率

always@(posedgeclkornegedgerstn)

begin

if(!

rstn)

clk1<=1'b0;

else

clk1<=~clk1;

end

*/

//秒钟的低位

always@(posedgeclk1ornegedgerstn)

if(!

rstn)

begin

second_l<=4'b0000;

second_l_flag<=1'b0;

end

else

begin

if(second_l==4'b1001)

begin

second_l<=4'b0000;//second_l+1'b1;

second_l_flag<=1'b1;

end

else

begin

//if(second_l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1