字符效果仿真
时间:2022-07-24
本文章向大家介绍字符效果仿真,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 字符点阵产生
如图在PCtoLCD2002中输入数字ICer,点击生成字模,保存字模;
2.修改字模格式,删除提示信息,标点符号等;去掉全部0x,并逐一合并两项;(可以使用perl、python等提高效率)
)
修改后结果:
3.在代码文件中,利用readmemh函数读取生成的字模;
仿真如下:
可以制作表白文字,这就是工科人的浪漫吧!
工程代码:
//TOP文件
module char_display
(
input clk,
input rst_n,
output [15:0] out
);
wire [15:0] data_out;
reg [15:0] count;
wire [7:0] raddr = count[15:8];
assign out = {16{clk}} & data_out;
BRAM BRAM_inst
(
.clk ( clk ) , // input clk
.wr_en ( 1'b0 ) , // input wr_en
.waddr ( 1'b0 ) , // input [MEMWIDTH-1:0] waddr
.raddr ( raddr ) , // input [MEMWIDTH-1:0] raddr
.data_in ( 8'b0 ) , // input [DATAWIDTH-1:0] data_in
.data_out ( data_out ) // output [DATAWIDTH-1:0] data_out
);
defparam BRAM_inst.MEMWIDTH = 8;
defparam BRAM_inst.DATAWIDTH = 16;
always@(posedge clk,negedge rst_n)
begin
if(!rst_n)
count <= 'b0;
else
count <= count + 1'b1;
end
endmodule
////////////////////////////////////////////////////////////////////////////////
//BRAM文件
////////////////////////////////////////////////////////////////////////////////
module BRAM
#(
parameter MEMWIDTH = 20, //1024 * data
parameter DATAWIDTH = 1
)
(
input wire clk,
input wire wr_en, //写有效信号
input wire [MEMWIDTH-1:0] waddr, //写地址
input wire [MEMWIDTH-1:0] raddr, //读地址
input wire [DATAWIDTH-1:0] data_in, //写入的数据
output reg [DATAWIDTH-1:0] data_out //读出的数据
);
// Memory Array
reg [DATAWIDTH-1:0] memory[0:(2**MEMWIDTH-1)];
initial
begin
// $readmemh("E:/学习/char_display/char_display/数字ICer.txt",memory);
$readmemh("E:/学习/char_display/char_display/我宣你.txt",memory);
end
always@(posedge clk)
begin
if( wr_en )
memory[waddr] <= data_in;
data_out <= memory[raddr];
end
endmodule
//仿真文件
`timescale 1 ps/ 1 ps
module char_display_vlg_tst();
reg clk;
reg rst_n;
wire [15:0] out;
char_display i1 (
.clk(clk),
.out(out),
.rst_n(rst_n)
);
initial begin
clk = 0;
rst_n = 0;
#100 rst_n = 1;
#1000000
$stop(2);
end
always #10 clk = ~clk;
endmodule
4.工程获取:包括代码工程及字模生成软件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP中rename()函数的妙用讲解
- php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
- php实现小程序支付完整版
- Yii2框架视图(View)操作及Layout的使用方法分析
- php实现单笔转账到支付宝功能
- PHP使用Redis实现Session共享的实现示例
- windows10在visual studio2019下配置使用openCV4.3.0
- PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
- Python爬虫爬取新闻资讯案例详解
- Python代码需要缩进吗
- 解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
- Python计算信息熵实例
- 详解python logging日志传输
- 将tf.batch_matmul替换成tf.matmul的实现
- Python正则表达式高级使用方法汇总