16x16点阵滚动显示汉字Verilog代码Quartus仿真

名称:16x16点阵滚动显示汉字Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

16x16点阵滚动显示汉字

要求:控制16x16点阵显示器显示汉字,并滚动显示

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

附字模软件

部分代码展示:

//滚动显示“通信孙晗”
module led_16X16(
input clk,//时钟
output reg [15:0] hang,//行
output reg [15:0] lie//列
);
//汉字1--通
//03H,0F8H,40H,10H,30H,0A0H,10H,48H
//03H,0FCH,02H,48H,0F2H,48H,13H,0F8H
//12H,48H,12H,48H,13H,0F8H,12H,48H
//12H,68H,2AH,50H,44H,06H,03H,0FCH
reg [15:0] word1_1=16'h03F8;
reg [15:0] word1_2=16'h4010;
reg [15:0] word1_3=16'h30A0;
reg [15:0] word1_4=16'h1048;
reg [15:0] word1_5=16'h03FC;
reg [15:0] word1_6=16'h0248;
reg [15:0] word1_7=16'hF248;
reg [15:0] word1_8=16'h13F8;
reg [15:0] word1_9=16'h1248;
reg [15:0] word1_10=16'h1248;
reg [15:0] word1_11=16'h13F8;
reg [15:0] word1_12=16'h1248;
reg [15:0] word1_13=16'h1268;
reg [15:0] word1_14=16'h2A50;
reg [15:0] word1_15=16'h4406;
reg [15:0] word1_16=16'h03FC;
//汉字2--信
reg [15:0] word2_1=16'h0880;
reg [15:0] word2_2=16'h0844;
reg [15:0] word2_3=16'h0FFE;
reg [15:0] word2_4=16'h1000;
reg [15:0] word2_5=16'h1008;
reg [15:0] word2_6=16'h37FC;
reg [15:0] word2_7=16'h5000;
reg [15:0] word2_8=16'h9008;
reg [15:0] word2_9=16'h17FC;
reg [15:0] word2_10=16'h1000;
reg [15:0] word2_11=16'h13F8;
reg [15:0] word2_12=16'h1208;
reg [15:0] word2_13=16'h1208;
reg [15:0] word2_14=16'h1208;
reg [15:0] word2_15=16'h13F8;
reg [15:0] word2_16=16'h1208;
//汉字3--孙
reg [15:0] word3_1=16'h0020;
reg [15:0] word3_2=16'h7E20;
reg [15:0] word3_3=16'h0220;
reg [15:0] word3_4=16'h0420;
reg [15:0] word3_5=16'h0820;
reg [15:0] word3_6=16'h0AB0;
reg [15:0] word3_7=16'h0CA8;
reg [15:0] word3_8=16'h3924;
reg [15:0] word3_9=16'hC926;
reg [15:0] word3_10=16'h0A22;
reg [15:0] word3_11=16'h0C20;
reg [15:0] word3_12=16'h0820;
reg [15:0] word3_13=16'h0820;
reg [15:0] word3_14=16'h0820;
reg [15:0] word3_15=16'h28A0;
reg [15:0] word3_16=16'h1040;
//汉字4--晗
reg [15:0] word4_1=16'h0040;
reg [15:0] word4_2=16'h0840;
reg [15:0] word4_3=16'h7CA0;
reg [15:0] word4_4=16'h48A0;
reg [15:0] word4_5=16'h4990;
reg [15:0] word4_6=16'h4A4E;
reg [15:0] word4_7=16'h4C04;
reg [15:0] word4_8=16'h7BF0;
reg [15:0] word4_9=16'h4820;
reg [15:0] word4_10=16'h4848;
reg [15:0] word4_11=16'h4BFC;
reg [15:0] word4_12=16'h4A08;
reg [15:0] word4_13=16'h7A08;
reg [15:0] word4_14=16'h4A08;
reg [15:0] word4_15=16'h03F8;
reg [15:0] word4_16=16'h0208;
reg [15:0] word [0:63];
//字符初始化
always@(posedge clk)
begin
word[0]<=word1_1;
word[1]<=word1_2;
word[2]<=word1_3;
word[3]<=word1_4;
word[4]<=word1_5;
word[5]<=word1_6;
word[6]<=word1_7;
word[7]<=word1_8;
word[8]<=word1_9;
word[9]<=word1_10;
word[10]<=word1_11;
word[11]<=word1_12;
word[12]<=word1_13;
word[13]<=word1_14;
word[14]<=word1_15;
word[15]<=word1_16;
word[16]<=word2_1;
word[17]<=word2_2;
word[18]<=word2_3;
word[19]<=word2_4;
word[20]<=word2_5;
word[21]<=word2_6;
word[22]<=word2_7;
word[23]<=word2_8;
word[24]<=word2_9;
word[25]<=word2_10;
word[26]<=word2_11;
word[27]<=word2_12;
word[28]<=word2_13;
word[29]<=word2_14;
word[30]<=word2_15;
word[31]<=word2_16;
word[32]<=word3_1;
word[33]<=word3_2;
word[34]<=word3_3;
word[35]<=word3_4;
word[36]<=word3_5;
word[37]<=word3_6;
word[38]<=word3_7;
word[39]<=word3_8;
word[40]<=word3_9;
word[41]<=word3_10;
word[42]<=word3_11;
word[43]<=word3_12;
word[44]<=word3_13;
word[45]<=word3_14;
word[46]<=word3_15;
word[47]<=word3_16;
源代码

 扫描文章末尾的公众号二维码

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现16*16点阵显示汉字,需要使用Verilog语言编写代码。具体步骤如下: 1. 定义汉字库:将需要显示汉字转换为16*16的点阵图,并将其存储在一个ROM中。 2. 定义显示模块:使用Verilog语言编写一个模块,用于控制点阵显示器的显示。该模块需要包括以下功能: - 读取汉字库中的数据; - 将数据传输到点阵显示器中; - 控制点阵显示器的亮灭。 3. 编写顶层模块:使用Verilog语言编写一个顶层模块,用于将汉字库和显示模块连接起来,并控制显示的内容。 以上是实现16*16点阵显示汉字的基本步骤,具体实现过程需要根据具体的硬件平台和需求进行调整。 ### 回答2: 在FPGA设计中,16*16点阵显示汉字是一个比较基础的项目。通过Verilog语言,我们可以设计一个16*16点阵显示汉字的模块,实现汉字显示。 首先,我们需要准备一张16*16点阵汉字字库,包含所有需要显示汉字。这个字库可以通过在线工具或手工制作。 然后,我们需要将每个汉字按照点阵位置拆分成16个字节,每个字节表示一个16位的点阵,从高位到低位依次表示每一行的点阵状态。对于一个16*16的汉字,我们需要拆分出16个字节,存储在内存中。 接下来,我们需要设计一个字库读取模块。这个模块的功能是根据输入的汉字编号,从字库中读取对应的16个字节,并将这些字节输出。可以采用一个16位的寄存器作为输入,表示需要显示汉字编号。 最后,我们需要设计一个显示控制模块。这个模块的功能是根据输入的16个字节,控制16*16点阵LED的亮灭状态,实现汉字显示。我们可以将每个LED的亮灭状态保存在一个16*16的寄存器中,然后将这个寄存器输出到LED驱动器中,实现点阵显示。 综上所述,16*16点阵显示汉字Verilog设计,主要分为三个模块:字库读取模块、显示控制模块和LED驱动器。通过逐一实现这些模块,我们可以完成整个汉字显示模块的设计。 ### 回答3: 16*16点阵是指一个汉字被分成了16列16行,每一个点就是一个点阵。首先,我们需要创建一个存储汉字点阵数据的ROM。每一个点阵需要存储16位信息,因此ROM器件需要至少256个存储位置。 在Verilog代码中,首先需要定义一个模块来描述ROM的行为。该ROM应具有读取功能,以便从16x16点阵存储器中读取汉字所需的点信息。 在输入参数方面,我们需要将16位的地址输入指向所需的汉字,并且建议输入一个时钟信号以便在读取时同步。读取信号应该是 ROM 的输出,每一位表示一个点阵是否该点亮。 接下来是建立顶层模块用来调用该ROM的模块。在这个模块中,我们需要定义输入参数来指定需要显示汉字,并输出16x16点阵的信息。在这里需要考虑的主要是16x16点阵信息的显示,因为显示器需要在一个像素阵列中显示数据。为此,我们需要在该模块中添加逻辑来处理像素数据,并将其传送到显示器模块。 显示模块通过将每一个像素随着时间的流逝输出到屏幕上来显示图像。在该模块中,你需要将输入和输出端口正确地定义,需要考虑的是输入端口应该包括像素数据以及它们在屏幕上的位置。需要定义输出端口来控制像素在屏幕上的显示。 最后是测试该模块的时候,在测试代码中需要实例化顶层模块,以便可以模拟汉字的输入、数据的处理和像素在屏幕上的输出,以便验证所编写的Verilog代码是否正确。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值