前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工科生的浪漫521——Verilog任意字符显示、TestBench仿真、verilog波形祝福

工科生的浪漫521——Verilog任意字符显示、TestBench仿真、verilog波形祝福

作者头像
FPGA探索者
发布2022-10-05 14:18:19
1.1K0
发布2022-10-05 14:18:19
举报
文章被收录于专栏:FPGA探索者FPGA探索者

1. 波形显示效果

实现效果:

显示原理:

verilog仿真时,输出多位位宽的数据,通过不同时刻的高电平数据来构成字的形状。

想着简单但是实现复杂的方法:自己提前算好什么时候拉高;

通用方法:使用字模的取模软件获取字模,如果有做过OLED取字模显示的那么应该是很容易就上手了。

2. 所需软件

(1)字模软件,PCtoLCD;

(2)Vivado或者Modelsim等能运行verilog TestBench仿真的工具;

3. 取模的操作步骤

首先取字模,设置字体大小是16x16,即一个汉字占16行16列,一个数字或者字母、空格占16行8列,由此可以设置verilog输出数据的位宽是16,恰好对应16行数据。

(1)点阵格式

取字模时,设置成阴码,这样要显示的字是高电平,不显示的点是低电平;如果是阳码,就是要显示的字是低电平,不显示的点是高电平;

(2)取模方式

选择逐列式,也就是数据是一列一列的,正好是16行的一列一列的数据,这样在verilog中正好每个时钟输出1个16 bit的数据即可,这个16 bit的数据就是当前列的数据。

(3)取模走向

顺向,高位在前,低位在后,正好和verilog输出一致,verilog定义输出reg [15:0] data即可。

(4)输出数制

十六进制。

导出字模数据,把连续的2个十六进制表示的数据合成1个数据,即00H和00H拼成0x0000,1FH和98H拼成0x1F98,那么对于数字5得到8个16位表示的数据。

看一下这8个数据为什么能表示出数字5。

首先第一个数据,0x0000,二进制就是16个0,对应的是右侧第一列都没点亮;

第二个数据,0x1F98,二进制0001_1111_1001_1000,仔细把这个数据和第二列对比!从高到低,

数字5的第二列是暗暗暗亮_亮亮亮亮_亮暗暗亮_亮暗暗暗

即1是亮,0是暗,也就是前面所说的逐列式、阴码。

显然,verilog只要设置一个[15:0] data,每个clk输出一列,就完成了扫描输出。

4. Verilog代码

不需要设置例化模块,只需要一个TestBench即可。

数据存储在data521.txt文件中。

`timescale 1ns / 1ns

//////////////////////////////////////////////////////////////////////////////////

// Engineer: FPGA探索者

//////////////////////////////////////////////////////////////////////////////////

module generate_520();

reg [15:0] data;

reg clk;

initial begin

clk = 0;

data = 0;

end

//从外部 txt 文件读入数据作为测试激励

//data_num 设置多大?521加2个空格是5个数字,每个数字8列数据,5*8=40个数据

parameter data_num = 40;

integer Pattern;

reg [15:0] stimulus[1:data_num];

initial

begin

#100;

// 十六进制读取.txt文件,使用绝对地址

$readmemh("D:/project_1/data521.txt",stimulus);

Pattern=0;

repeat(data_num) begin

Pattern = Pattern+1;

data = stimulus[Pattern];

#10;

end

#100;

#500;

$stop;

end

always #5 clk = ~clk;

endmodule

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA探索者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 波形显示效果
  • 2. 所需软件
  • 3. 取模的操作步骤
  • 4. Verilog代码
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档