verilog学习
铁憨憨0304
这个作者很懒,什么都没留下…
展开
-
data_recv的输出信号,帧边界与帧之间的关系
data_recv模块负责将输入的40.96Mbps串行数据转化为8bit并行数据,由两个子模块组成,分别是uart_rx_oversample_8x负责将接收到的数据进行八倍过采样,并进行串并转换,以及decode模块负责完成10b/8b解码。在data_recv模块在顶层还实现了同步码的接收并根据接收结果判断链路状态的功能;时序如下图所示rx_link表示链路通断,由链路空闲时发送同步码决定其状态;frame信号用来表示帧的边界;dataout, dataout_val为输出信号及输出信号有效原创 2020-10-23 17:23:41 · 511 阅读 · 0 评论 -
异步FIFO跨时钟域,写的快、读的慢
DCM逻辑:DATA路径因为是写得快读得慢,写时钟周期比读周期小,所以在写满以后,等待下一个读周期上升沿就得到读满信号;异步FIFO跨时钟域问题,读写时钟不同,不能确定,写满信号和读空信号,采用的FIFO策略是,先写满,写的过程通过帧拉高,帧数据有效等来进入写的状态机,确定写的数量并缓存计数,确定写满。写满信号到来之后,输出,接收读请求,进入读的状态机,读出有效计数等与写的缓存计数时,就可以判定读空了;值得关注的一个信号是rd_control控制top层的模块读进程,并且因为跨时钟域的原因,需要等待原创 2020-10-23 10:34:17 · 3018 阅读 · 0 评论 -
异步FIFO跨时钟域,写的慢,读的快
DCM逻辑:CMD路径因为是写得快读得慢,写时钟周期比读周期大,所以在写满以后,下一个读周期上升沿就很快的得到读满信号。异步FIFO跨时钟域问题,读写时钟不同,不能确定,写满信号和读空信号,采用的FIFO策略是,先写满,写的过程通过帧拉高,帧数据有效等来进入写的状态机,确定写的数量并缓存计数,确定写满。写满信号到来之后,输出,接收读请求,进入读的状态机,读出有效计数等与写的缓存计数时,就可以判定读空了。值得关注的一个信号是rd_control控制top层的模块读进程。以下是verilog代码,因前原创 2020-10-23 10:25:45 · 3817 阅读 · 0 评论