EDA实验 16×16点阵字符显示设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、实验效果分析(包过仪器设备等使用效果)
三、实验效果分析:
静态点阵RTL图形:
动态RTL仿真图形:
实验中程序一点阵里显示静态的师字,程序二中点阵显示的师字自右往左移动,说明实验程序正确。
字符显示的内容改变通过将要显示的数据取模,定制在ROM上,便可实验内容的改变,移动方向的改变将Q1<=Q1+1;改成Q1<=Q1-1;也就是将当前对应地址发生器的地址改为前一地址便可右移,改为后一地址便是左移,不变则静止。
教
师
评
语指导教师年月日
江西师范大学物理与通信电子学院
教学实验报告
专业:电子信息工程2011年5月11日
实验名称16×16点阵字符显示设计指导老师
姓名年级学号成绩
一、预习部分
1、实验目的
2、实验基本原理
3、主要仪器设备(包含必要的元器件、工具)
一、实验目的:
1.进一步熟悉QUARTUS‖及其LPM_ROM与FPGA硬件资源的使用方法。
2.学习和掌握16*16点阵字符显示设计方法。
二、实验基本原理:
利用不同的行抄描和列扫描,加上字取模软件对字取模,利用动态扫描便在点阵上看到了字。
二、主要仪器设备
电脑、实验箱
二、实验操作步骤
1.实验数据、表格及数据处理
2.实验操作过程(可以用图表示)
3.结论
1.实验数据、表格及数据处理如下:
library ieee; if rst='1'then
use ieee.std_logic_1164.all; qa<=(others=>'0');
use ieee.std_logic_unsigned.all; elsif clk'event and clk='1' then
entity sy12 is qa<=qa+1;
port(clk,rst:in std_logic; end if;
sel:out std_logic_vector(3 downto 0); end process;
dout:out std_logic_vector(15 downto 0)); process(qa,rst)
end ; begin
architecture one of sy12 is if rst='1' then
component data_rom q1<=(others=>'0');
port (address:in std_logic_vector(4 downto 0); elsif qa(10)'event and qa(10)='1' then inclock:in std_logic; q1<=q1+1; --当前所有地址改为对应的下一q:out std_logic_vector(15 downto 0)); end if; 地址,即整体左移end component; end process;
signal qa:std_logic_vector(10 downto 0); sel<=not(q0-2);
signal q0:std_logic_vector(3 downto 0); qq<=q1+q0;
signal qq:std_logic_vector(4 dow u1: data_rom port map(address=>qq,q=>dout,inclock=>clk); signal q1:std_logic_vector(4 downto 0); end;
begin
process(clk,rst)
begin
if rst='1' then
q0<=(others=>'0');
elsif clk'event and clk='1' then
q0<=q0+1;
end if ;
end process;
process(clk,rst)
begin 2、实验操作过程如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity sy11 is
port(clk,rst:in std_logic;
sel:out std_logic_vector(3 downto 0);
dout:out std_logic_vector(15 downto 0));
end ;
architecture one of sy11 is
component data_rom
port (address:in std_logic_vector(4 downto 0);
inclock:in std_logic;
q:out std_logic_vector(15 downto 0));
end component;
signal qq:std_logic_vector(4 downto 0);
signal q1:std_logic_vector(4 downto 0);
begin
process(clk,rst)
begin
if rst='1' then
q1<=(others=>'0');
elsif clk'event and clk='1' then
q1<=q1+1; end if ;
end process;
qq<=q1-1;
sel<=not qq(3 downto 0);
u1:data_rom port map(address=>q1,q=>dout,inclock=>clk); end;