找回密码
 注册
关于网站域名变更的通知
查看: 425|回复: 1
打印 上一主题 下一主题

转——【菜鸟FPGA VHDL学习帖】第6帖 闪烁灯 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-7 10:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【菜鸟FPGA VHDL学习帖】第6 闪烁灯
第一步,我们先来看看原理图: F: C/ g# S, ~% o* I' Y$ N! v2 b$ {
LED2 接的是3脚, LED3接的是2 LED4接的是1

, P# |: o5 b9 n/ m  [: N9 _
第二步,因为闪烁灯,需要用到时钟信号,所以我们必须了解我们用的晶振和时钟引脚
由实验板上的晶振标识可知我们用的晶振是48M,而CLK引脚是24脚,配置引脚的时候需要用到。
: i8 w) X3 f. ~! M" G( n, L5 j
8 ?# q$ F- y0 {  G
第三步:语句
       用到时钟信号,不得不提一个语句——PROCESS语句
PROCESS 中规定了每个进程语句在当它的某个敏感信号 由敏感信号参量表列出的值改变时都必须立即完成某一功能行为,这个行为由进程语句中的顺序语句定义,行为的结果可以赋给信号并通过信号被其它的 PROCESS BLOCK 读取或赋值。
IF(clk'event and clk ='1')
clk'event是指信号clk是否发生跳变,若发生了则返回ture,否则为假,
: Z4 [2 f/ K& S* ?9 o& kclk=‘1’是跳变后clk为高电平。
第四步,例子
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity ledd is
port(        clk: in  std_logic;
                               doutut std_logic);
end ledd;
architecture behave of ledd is
SIGNAL num: std_logic_vector(31 downto 0);
SIGNAL vet: std_logic := '0';
BEGIN
PROCESS(clk)
BEGIN
IF(clk'event and clk ='1') THEN
               num <= num + 1;
               IF(num = 48000000) THEN
                              num <= "00000000000000000000000000000000";
                               vet <= vet XOR  '1';
               END IF;
END IF;
END PROCESS;
dout <= vet;
END behave;
// 实例中,没有具体计算闪烁的频率,只是做了一些简单的赋值,做了大约人眼能够看到闪烁的估算,具体num的数据的赋值,还要读者自己慢慢研究。在每个时钟上升沿来临,num都加1,当num计算到48000000时,取反。
游客,如果您要查看本帖隐藏内容请回复
9 e  Q1 b  O  S: {1 ~& K

该用户从未签到

2#
发表于 2019-5-7 18:19 | 只看该作者
看看楼主怎么说的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-2 16:57 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表