FPGA学习日志——点亮led

led小灯点亮

实验目的:实现一个即按即亮的小灯控制模型。

控制框图与波形图:

实验代码:没有使用到时钟输入,采用逻辑电路赋值达到没有延时的即按即亮。

非/阻塞赋值

assign led_out = key_in 在逻辑赋值中 使用阻塞赋值:赋值语句立即执行,执行完毕后才执行下一条语句(即为阻塞的含义,依次顺序执行),用于建立组合逻辑模型

非阻塞赋值:先计算语句右侧的值,但不立即赋值给左边,等待always语块结束后才完成赋值。时序电路或锁存器时,使用<=

同一个always块中不要既用非阻塞赋值又用阻塞赋值。每个always语句块都隐含表示一个独立的逻辑电路模块,因此对于特定的reg类型的变量,只能在一个always语句块中对其进行赋值,否则就可能会出现两个硬件模块同时从同一个输出端口输出数据的情况(短路输出)。

位于begin/end块内的多条阻塞赋值=是串行执行的,。但是多条非阻塞赋值语句是并行执行的,这些非阻塞赋值语句都会在其中任何一条语句执行完成之前开始执行。

wire型与reg型

  1. wire:wire本质是一条没有逻辑的连线,wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出类型都默认为wire型,wire相当于物理连线,默认初始值是z(高阻态)。

  2. reg:reg型表示的寄存器类型,用于always模块内被赋值的信号,必须定义为reg型,代表触发器,常用于时序逻辑电路,reg相当于存储单元,默认初始值为x(未知状态)。

随机生成1或0

always #10 key_in<={$random}%2;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chendy_00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值