- 博客(3)
- 收藏
- 关注
原创 iic协议通讯驱动
模块特点 利用状态机完成iic的驱动,将重复的状态进行合并,使代码更简单; 由于iic不能连续完成读写操作,在STOP状态后又加了一个DELAY (延迟)状态,延迟了5ms,可以保证程序不会卡死; 为体现iic的节能特点,使用了三态门,在空闲状态下,sda和scl线处于释放状态; 为了使一次通讯稳定运行,在通讯刚开始时对数据进行寄存,而且在通讯过程中不能发生变化; iic协议读/写数据步骤 iic协议读数据时序图 iic协议写数据时序图 iic协议通讯驱动模块 module i2c_driver(
2020-12-25 17:17:40
404
1
原创 UART
uart_rx `define NONE 0 `define ODD 1 `define SEVEN 2 `define SPACE 3 `define MARK 4 `define STOP_ONE 0 `define STOP_ONEHALF 1 `define STOP_TWO 2 module uart_rx #( parameter CLK = 50_000_000, parameter BAUD = 9
2020-12-30 22:23:01
153
原创 任意整数分频时钟的建立
1.该程序使用Verilog语言,用状态机实现任意整数分频的时钟; 2.偶数分频和奇数分频都能实现; 2.在运算中把除法和取余逻辑上比较好理解的运算符,改变成右移位和减法实现,可以大量节省FPGA资源; module div( input wire clk, input wire rst, input wire [31:0] a, //任意分频倍数 output wire clk_a ); reg clk1; reg clk2; wire [31:0] T_H; wire
2020-12-25 21:15:50
318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅