字符效果仿真
时间: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.工程获取:包括代码工程及字模生成软件
- QT Creator 快速入门教程 读书笔记(二)
- 设计模式学习笔记-命令模式
- .com域名和.cn域名的介绍
- Windows安装和使用zookeeper
- 使用MagicAjax 实现无刷新Webparts
- Python 项目实践一(外星人入侵小游戏)第五篇
- Python 项目实践一(外星人入侵小游戏)第三篇
- WordPress自定义栏目运用实例 VI:设置外链缩略图/特色图像
- Python 项目实践一(外星人入侵小游戏)第二篇
- IBatisNet配置
- WordPress设置评论到达一定数量后自动关闭评论功能
- Python 项目实践一(外星人入侵)第一篇
- 外媒:域名Covermate.com超35万终端交易
- 移除WordPress 管理后台的主题编辑功能
- 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 数组属性和方法
- 微信公众号菜单点击发送天气预报
- SAP CRM Fiori应用如何启用Sales Office和Sales Group两个字段
- 通过注册表调整 Windows 8 窗口边框宽度
- 在 Mac OS X 中创建和使用内存盘
- Mono for Android 下的 ListActivity
- 使用JavaScript Function.prototype进行代码重构的一些例子
- Activity 生命周期及其栈管理方式
- 如何操作SAP UI5应用Footer区域工具栏按钮的背景颜色
- 我的第一个 Mono for Android 应用
- 【DB笔试面试851】在Oracle中,造成“ORA-28040: No matching ...”错误的原因是什么?
- 在 Silverlight 5 项目中使用 async/await
- 开源一个 Sliverlight 导航框架
- 【DB笔试面试852】在Oracle中,什么是静默建库?
- 从 SVN 迁移到 Git
- 在 Windows 系统上配置 Apache Git 服务器