FPGA学习日志5(时序电路基础,流水灯)

总览:本文是基于 Xilinx 的zynq-7010开发板实现简单的4个led灯流水,并附上相应代码注释以及一些基本语法知识

`timescale 1ns / 1ps

#500 :延时500ns,精度为1ps

加位宽’d数字会变颜色,更好看,推荐加位宽

 a<='d1:非阻塞式赋值


        begin

                                //多条赋值语句
        end

数据类型:

1.top.v

其中第一行是时间刻度,与之前仿真文件不同的是,我的源文件无论是单位还是精度都 采用了 1ps,首先我们要知道,延迟是无法被综合的,也就是代码中的延迟,在综合时会被 忽略,我们在源代码中添加延迟,主要是为了模拟一个寄存器的延迟,因为实际的硬件中, 寄存器赋值本身就不是一瞬间的事情,一般来说,7 系列 a 架构的 FPGA 寄存器延迟大概在

50ps 左右。 定义了两个 parameter 参数,一个是时钟频率,一个是 LED 的流水时间,设置成

parameter 类型的参数方便在上层模块或者换了板卡时,或者想要改变流水速度时方便修改。 端口定义了三个端口,因为是时序逻辑电路,所以最主要的便是时钟端口,通过输入一 个稳定的时钟,让内部逻辑有个统一的时间刻度,并让其在规定时间内完成规定的事。输入 了一个复位端口,通过复位信号给整个时序逻辑一个固定的初值。输出了四个 LED 端口。 定义了一个 localparam 参数用来计算当前 LED 流水速度下时钟需要计数的次数,由于这 个参数是根据时钟频率和流水速度共同决定,所以并不是一个外部能够直接修改的值,所以 采用 localparam 的形式。

16 行的 always 语句定义了一个计数器,触发信号为时钟上升沿或者复位下降沿,当复位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值