rsr <= rsr >> 1; // 寄存器右移一位
rsr[7] <= rxparity; // 数据装入rsr[7]
rxparity <= rxstop;
rxstop <= rx;
paritygen <= paritygen ^ rxstop; // 产生奇偶比较标志
end
endtask
由时序图可以看到一个完整的数据帧的接收过程,hunt和idle标志捕捉到起始位后,产生rxclk波特率时钟,串行数据在rsr中移位,rsr中数据右移高位补零。当起始位’0’移位到rsr[0]后,接收模块在下一个clk上升沿返回空闲状态,返回空闲状态后产生数据移位完成中断rxrdy,数据可从8位数据总线读出。
图5. 接收时序
3 UART综合
程序经仿真验证后,须综合生成IP核并嵌入FPGA中。使用Xilinx公司的Xilinx ISE工具综合UART模块,FPGA选用Xilinx公司的Spartan-IIE xc2s50E,系统时钟40MHz。经Xilinx ISE综合后,资源使用结果如下所示,表明使用少量FPGA的Slice和LUT单元就可生成UART核。
表1. 资源使用情况
Number of Slices
108 out of 768
14%
Number of Slice flip Flops
90 out of 1536
5%
Number of 4 input LUTs
195 out of 1536
12%
Number of bonded IOBS
25 out of 102
24%
Number of GCLKs
1 out of 4
25%
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术