FPGA 串口&adc学习笔记

目录

1.在FPGA中实现串口(UART)发送和接收数据通常涉及以下步骤:

2.在FPGA中采集ADC(模数转换器)的数据通常涉及以下步骤:


仿真只会仿top文件,所以需要仿真哪个文件就将该文件设置为top文件

隐式状态机的思想:

我们的整个数据的一个整个系统的完成过程并没有那么明显的一个状态机的跳转

一些信号控制者另一些信号,让他进行一个有规律的一个运行的过程

在这一个时间点的时候给他消隐,在最后的时间点又恢复我们的数据

ADC采集可以被称为二进制数模转换器,也即将模拟信号转换成数字信号。ADC采集电路中的电压,将电压波形通过二进制的方式表现出来 

input信号:

从外界传递到fpga内部的信号

例子:一个按钮的开关状态、温度传感器的读数、来自另一个设备的控制信号等

output信号

从fpga内部传递到外部的信号

[2:0]数据:直接去加总线的数据,若大于等于4,则最高位为1,若小于4,则最高位为0;

100 101 110 111 >= 4

000 001 010 011 < 4

在Verilog中,表达式 `wait_rxd <= {wait_rxd[0], rxd};` 表示将 `wait_rxd[0]` 和 `rxd` 这两个信号进行位拼接(bit concatenation),并将结果赋值给 `wait_rxd`。

这里的 `{}` 是位拼接操作符,它将括号内的信号或值按顺序拼接成一个更宽的位向量。具体来说:

- `wait_rxd[0]` 是一个比特信号,可能是一个寄存器或线网(wire)的一个比特。
- `rxd` 是另一个信号,其位宽可能与 `wait_rxd[0]` 不同。

这个赋值操作会将 `wait_rxd[0]` 放在结果位向量的高位(如果 `wait_rxd` 是单比特信号的话),然后将 `rxd` 的位按顺序放在低位。这样,`wait_rxd` 就变成了一个包含 `wait_rxd[0]` 和 `rxd` 所有位的新信号。

例如,如果 `wait_rxd[0]` 是 `1`,而 `rxd` 是一个8位的信号,比如 `8'b01010101`,那么赋值后的 `wait_rxd` 将是一个9位的信号,值为 `9'b1_01010101`。

这种操作通常用于创建一个包含多个信号的新信号,或者在发送数据时将控制位和数据位组合起来。在这个特定的例子中,可能是为了在数据传输过程中添加一个特定的控制位。

高阻态就是没连信号

添加约束文件之后才能进行下板验证

1.在FPGA中实现串口(UART)发送和接收数据通常涉及以下步骤:

### 串口发送(UART Transmitter)

1. **初始化*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值