verilog求救!
时间:10-02
整理:3721RD
点击:
想用verilog编写一个串口接口程序如下:
起始位:0(1.5 bit)
10100101: 报头
命令字B0B1B2B3B4B5B6B7:B0为读写控制位(0读,1写),B1为数据LSB和MSB传输标志位(0 LSB先出,1 MSB先出) B2B3B4 B5为访问地址(0000自检状态寄存器,0001控制状态寄存器,0011频合预置计数器预置值寄存器,0100预置频合地址1快跳频合,0101预置频合地址2慢跳频合, 0110预置频合地址3慢跳频合,0111预置频合地址4慢跳频合,1000发射门控计数器预置值寄存器,1001接收门控计数器预置值寄存器,1110错误重发请求标志寄存器,1111装置ID软件版本寄存器,其余保留),B6B7为传输数据长度(00 0个8bit数据长度,01
1个8bit数据长度,10
2个数据8bit长度,11
3个8bit数据长度)
数据位:(0-3)(读时没有数据,写时的数据长度1-3)
01011010: 报尾
CRC校验位
CRC8=X8+X7+X6+X4+X2+1
停止位:1 (1 bit)
无数据时高电平。
读操作时后面的数据长度为0。
不知怎不入手:1,怎样保证时钟采集数据时总是采到数据中间。2,整个状态看是简单,好像又很复杂
焦虑中!
请赐教!
起始位:0(1.5 bit)
10100101: 报头
命令字B0B1B2B3B4B5B6B7:B0为读写控制位(0读,1写),B1为数据LSB和MSB传输标志位(0 LSB先出,1 MSB先出) B2B3B4 B5为访问地址(0000自检状态寄存器,0001控制状态寄存器,0011频合预置计数器预置值寄存器,0100预置频合地址1快跳频合,0101预置频合地址2慢跳频合, 0110预置频合地址3慢跳频合,0111预置频合地址4慢跳频合,1000发射门控计数器预置值寄存器,1001接收门控计数器预置值寄存器,1110错误重发请求标志寄存器,1111装置ID软件版本寄存器,其余保留),B6B7为传输数据长度(00 0个8bit数据长度,01
1个8bit数据长度,10
2个数据8bit长度,11
3个8bit数据长度)
数据位:(0-3)(读时没有数据,写时的数据长度1-3)
01011010: 报尾
CRC校验位
CRC8=X8+X7+X6+X4+X2+1
停止位:1 (1 bit)
无数据时高电平。
读操作时后面的数据长度为0。
不知怎不入手:1,怎样保证时钟采集数据时总是采到数据中间。2,整个状态看是简单,好像又很复杂
焦虑中!
请赐教!
如果是高速串行数据,本地一般需要一个基于pll的时钟恢复单元产生和数据对准的时钟
如果是比较慢的串行传输,是不是同时再用一条线把同步时钟也给传过来了?用那个时钟采样数据就行
多谢关注
有没有类似的例子之类的!
急!
