用VHDL实现16*16点阵的显示 在用quartus ii 进行管脚分配的时候,该如何分配?(所选芯片为EP2C35F672C8)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VHDL实现16*16点阵的显示 在用quartus ii 进行管脚分配的时候,该如何分配?(所选芯片为EP2C35F672C8)相关的知识,希望对你有一定的参考价值。

以下是部分的代码 PORT(CLK,re:IN STD_LOGIC;
Qa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
Qb:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);
m:in std_logic_vector(2 downto 0);
N:in std_logic_vector(3 downto 0);
q:out std_logic_vector(15 downto 0) );
end ;
---------------------------------------------------
ARCHITECTURE behave OF chenjiao IS
Signal tmp:std_logic_vector(3 downto 0);
Begin
Qa<=tmp;
Process(clk,re)
Begin
If re='1' then tmp<="0000";
Elsif (clk'event and clk='1')then
If tmp="1111"then tmp<="0000";
Else tmp<=tmp+'1';
End if;
End if;
End process;
--------------------------------------------------
Process(clk,re)
Begin
If re='1' then qb<="000";
Elsif (clk'event and clk='1')then
If qb="111"then qb<="000";
Else qb<=qb+'1';
End if;
End if;
End process;
---------------------------------------------------
Process(m,n)
Begin
Case m is
When"000"=>
Case n is
When"1111"=>q<="0000000000100000";--以下省略……

以下是进入到引脚分配界面时的截图
(如果验证成功,可以再追加分值)

看看你的点阵挂接在什么芯片的什么引脚上,FPGA芯片在这个驱动芯片的那些引脚 在LOCATION一栏中填写所使用的引脚。 参考技术A 用的是博创的平台吗?追问

不知道博创 就是学校的实验开发板 见图

追答

我没用过,问老师要说明书吧

用VHDL设计正弦信号发生器

正弦信号发生器的结构由3部分组成:

1、计数器或地址信号发生器,要根据ROM大小来确定地址发生器宽度。(其实验选择6位地址信号发生器给ROM)

2、正弦信号数据存储ROM(地址宽度6位,数据宽度8位),包含64个字的完整正弦波数据(1个完整周期)

3、8位D/A模块(采用TLC5602超高频数模转换器),实现数模转换,输出模拟正弦波信号。

技术图片

 

                                                                  结构图

在正弦信号发生器结构图中,地址信号发生器的时钟信号有clk提供,假设其频率为f0,正弦波数据ROM中存放每周期64个字节的波形数据,则8位

D/A转换后的正弦信号频率为:f=f0/64.

TLC5602X电路图:

技术图片

 

 

                                               并行DAC电路原理图

 

1、产生6位计数器(地址发生器)

(1)、生成mif文件

技术图片

 

(2)、6位地址,64个字,8位宽。

 技术图片

 

 (3)、生成包含完整周期的正弦波数据

技术图片

 

 2、创建正弦波数据存储ROM

(1)、选择路径

技术图片

 

 (2)、创建

技术图片

 

 (3)、选择产生的rom

技术图片

 

 (4)、添加文件

技术图片

 

 (5)、更改时钟,选择周期

技术图片

 

 (6)、去掉多余输出

技术图片

 

 (7)、添加,fim文件

技术图片

 

 (8)、选中

技术图片

 

产生文件程序:

LIBRARY ieee;
USE ieee.std_logic_1164.all;

LIBRARY altera_mf;
USE altera_mf.all;

ENTITY date_rom IS
PORT
(
address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);
inclock : IN STD_LOGIC := ‘1‘;
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
);
END date_rom;


ARCHITECTURE SYN OF date_rom IS

SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0);

 

COMPONENT altsyncram
GENERIC (
address_aclr_a : STRING;
clock_enable_input_a : STRING;
clock_enable_output_a : STRING;
init_file : STRING;
intended_device_family : STRING;
lpm_hint : STRING;
lpm_type : STRING;
numwords_a : NATURAL;
operation_mode : STRING;
outdata_aclr_a : STRING;
outdata_reg_a : STRING;
widthad_a : NATURAL;
width_a : NATURAL;
width_byteena_a : NATURAL
);
PORT (
address_a : IN STD_LOGIC_VECTOR (5 DOWNTO 0);
clock0 : IN STD_LOGIC ;
q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
);
END COMPONENT;

BEGIN
q <= sub_wire0(7 DOWNTO 0);

altsyncram_component : altsyncram
GENERIC MAP (
address_aclr_a => "NONE",
clock_enable_input_a => "BYPASS",
clock_enable_output_a => "BYPASS",
init_file => "date.mif",
intended_device_family => "Cyclone IV E",
lpm_hint => "ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ROM1",
lpm_type => "altsyncram",
numwords_a => 64,
operation_mode => "ROM",
outdata_aclr_a => "NONE",
outdata_reg_a => "UNREGISTERED",
widthad_a => 6,
width_a => 8,
width_byteena_a => 1
)
PORT MAP (
address_a => address,
clock0 => inclock,
q_a => sub_wire0
);

 

END SYN;

 3、正弦信号发生器顶层设计

程序:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity signt is
port(
clk_in:in std_logic;
dout:out std_logic_vector(7 downto 0);
clk_out:out std_logic
);
end;
architecture bhv of signt is
component date_rom
port(
address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);
inclock : IN STD_LOGIC := ‘1‘;
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
);
end component;
signal q1:std_LOGIC_VECTOR(5 downto 0);
begin
process(clk_in)
begin
if clk_in‘event and clk_in=‘1‘ then
q1<=q1+1;
end if;
end process;
u1:date_rom port map(address=>q1,q=>dout,inclock=>clk_in);
clk_out<=not clk_in;
end;

 

仿真图:

技术图片

 

 rtl原图:

技术图片

 

 

以上是关于用VHDL实现16*16点阵的显示 在用quartus ii 进行管脚分配的时候,该如何分配?(所选芯片为EP2C35F672C8)的主要内容,如果未能解决你的问题,请参考以下文章

单片机LED16*16点阵显示实验

Proteus仿真74HC595+74LS154驱动显示16X16点阵

Proteus仿真51单片机+16X16点阵显示

51单片机 16X16点阵动态显示+Proteus仿真

使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字

点阵字模显示