微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA串口程序求助

FPGA串口程序求助

时间:10-02 整理:3721RD 点击:
看了一下黑金开发板的串口发送程序,其中:     8'd16: begin
                    tx <= datain[0];    //发送数据 0 位
          presult <= datain[0]^paritymode;
          idle <= 1'b1;
          cnt <= cnt + 8'd1;
     end
     8'd32: begin
          tx <= datain[1];    //发送数据 1 位
          presult <= datain[1]^presult;
          idle <= 1'b1;
          cnt <= cnt + 8'd1;
     end
     。
     8'd144: begin
          tx <= presult;      //发送奇偶校验位
          presult <= datain[0]^paritymode;
          idle <= 1'b1;
          cnt <= cnt + 8'd1;
     end

标红的是怎么回事啊,为什么数据要^(异或)啊,什么作用。为什么0位和校验位与paritymode异或,而其他位于presult异或。

你随意的写8位01,按照程序的流程走一遍,最后异或的结果就是奇偶检验的结果。如果你写的有偶数个1则presult结果是0;反之则为1。每一次presult的值是上一次运行完之后的值,这样才能达到奇偶检验的结果。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top