out_parallel_data out std_logic_vector 接收模式时想内核发送9位并行数据
表3.2 移位寄存器-计数器模块端口列表
计数器模块工作在波特率发生器提供的波特率频率clk下,计数器主要有两个功能。其一:向移位寄存器提供使能信号shift_en,控制移位寄存器接收和发送时的执行步骤。 其二 : 通过判断mode_send_recv 的值确定工作的模式,以便在计数到相应的值时向内核发送溢出信号(count_overflow)。
以为寄存器模块负责在计数器提供的使能信号和波特率发生器提供的时钟信号incidator 控制下进行移位。从而在接收模式下将输入的串行数据转换成并行数据,并滤除起始位、停止位;在发送模式下将内核发送的并行数据转换成串行数据输出,并在计数器的步骤控制下加入起始位、校验位、停止位。部分仿真波形如图3.2.1:
图3.2.1 移位寄存器-计数器仿真部分波形
如图3.2.1,计数器的值为1到9时 ,内部信号shift_en在clk_out的上升沿变化 作为移位寄存器的使能信号,控制移位寄存器工作,当值为1时,移位寄存器工作。
当计数器的值为1时,移位寄存器不工作,这样在接收过程中可以滤除起始位,在发送过程中可以为输出信号加入起始位。 当计数器的值为9是11时shift_en信号无效,移位寄存器不工作,这样在接收过程中可以滤除停止位,在发送过程中可以往串行输出信号中加入停止位。 该过程无论对于接收还是发送过程都成立 基于FPGA的UART设计+文献综述(6):http://www.751com.cn/tongxin/lunwen_6000.html