
APB_UART项目笔记
文章平均质量分 72
借问众神明.
犹当晚学,不可自弃
展开
-
driver与monitor间的数据传输--UART
文章目录uart发送数据(driver)uart接受数据(monitor)uart发送数据(driver)CPU通过APB总线给uart写入数据,将数据保存在TX_FIFO中,然后通过uart_driver将并行数据串行的发送到总线上。注意:发送时,应该符合uart的通信协议,在不发送数据时,sline.data应该保持高电平,当其拉低以后,表明数据传输开始。同时,数据传输应该根据波特率配置,并采用16倍频发送。具体可看uart波特率模块在发送完前四个数据以后,后续5到8位的数据发送应该由LCR寄存器原创 2022-04-30 19:16:05 · 1536 阅读 · 0 评论 -
uart_env环境各组件连接结构理解
在UART项目的学习过程中,发现对于uart_env层次的各组件连接关系理解易于混淆,于是梳理了一下各组件的连接关系,绘制如下所示层次图。下面会简述一下各组件的连接方法。首先,对于一个uart_env模块,其内部例化了uart_env_config的配置模块,可以对apb,uart, modem这三个不同协议的agent进行配置。在apb_agent模块中,有一个analysis_port端口,连接reg_predictor,通过ap端口,将apb_agent中由monitor收集到的数据交给寄存器模原创 2022-04-06 23:11:12 · 971 阅读 · 0 评论 -
波特率分频监测模块理解-基于apb_uart项目
文章目录模块介绍主要代码描述代码实例模块介绍该组件模块只要功能是检测特定波特率下的时钟分频是否正确,主要指IRQ.CLK在寄存器的控制下,是否正确分频成baud_out,其中 DIV2与 DIV2 寄存器的值和各个波形之间的频率关系如下图所示:通过验证在相邻两个 brg_en 时钟的上升沿之间有 16*{DIV2, DIV1}个 IRO.CLK 时钟的上升沿,可以说明寄存器 的功能是正确的。主要代码描述该组件中使用了三个 task:monitor_apb()、count_clocks()和 mon原创 2022-03-28 21:33:10 · 2088 阅读 · 1 评论