偶校验:数据位中1的个数 + 校验位1的个数(校验位为0或者1) = 偶数
奇校验:数据位中1的个数 + 校验位1的个数(校验位为0或者1) = 奇数
偶校验:数据位中1的个数 + 校验位1的个数(校验位为0或者1) = 偶数有了上面的认识,我们就可以得出下面的结论:1、奇校验时: 如果数据位中1的个数为奇数,则校验位为0(校验位为主机发送) 如果数据位中1的个数为偶数,则校验位为1(校验位为主机发送)2、偶校验时: 如果数据位中1的个数为奇数,则校验位为1(校验位为主机发送) 如果数据位中1的个数为偶数,则校验位为0(校验位为主机发送)在用verilog来设计UART时,校验位的判断如下:接收模块(pari_odd为奇校验标志,pari_even为偶校验标志,rec_data为接收到的8bit数据): if(((pari_odd) & ((^rec_data) == (~rx_in))) | ((pari_even) & ((^rec_data) == rx_in))) data_error <= 1'b0; else data_error <= 1'b1;发送模块(pari_odd为奇校验标志,pari_even为偶校验标志,data_temp为要发送的8bit数据): if(pari_odd & (^data_temp)) tx <= 1'b0; if(pari_odd & (~(^data_temp))) tx <= 1'b1; if(pari_even & (^data_temp)) tx <= 1'b1; if(pari_even & (~(^data_temp))) tx <= 1'b0;注:^rec_data为按位异或,如果rec_data中1的个数为奇数,则^rec_data = 1,否则^rec_data = 0;