.
PROCESS(clkbaud8x,clkbaud8x,rstn)
BEGIN
IF (rstn ='0') THEN
div8_rec_reg <= "000";
div8_tras_reg <= "000";
ELSE IF(clkbaud8x'EVENT AND clkbaud8x ='1') THEN
IF (recstart ='1') THEN -- 接收开始标志
div8_rec_reg <= div8_rec_reg + "001";-- 接收开始后,时隙数在 8 倍波特率的
时钟下加 1 循环
END IF;
IF (trasstart ='1') THEN
div8_tras_reg <= div8_tras_reg + "001";--发送开始后,时隙数在 8 倍波特率的
时钟下加 1 循环
END IF;
END IF;
END IF;
END PROCESS;
PROCESS(div8_rec_reg,div8_tras_reg) -- creat receive and transmit data clk
BEGIN
IF (div8_rec_reg = "111") THEN
clkbaud_rec <='1'; --在第 7 个时隙,接收
ELSE
clkbaud_rec <='0';
END IF;
IF (div8_tras_reg = "111") THEN
clkbaud_tras <='1'; -- 在第 7 个时隙,发送使能信号有效,将数据发出
ELSE
clkbaud_tras <='0';
END IF;
END PROCESS;
PROCESS(clkbaud8x,rstn) --trsnsmit data
BEGIN
IF (rstn ='0') THEN
txd_reg <='1';
trasstart <='0';
txd_buf <= "00000000";
state_tras <= "0000";
send_state <= "000";
key_entry2 <='0';
ELSE IF(clkbaud8x'EVENT AND clkbaud8x ='1') THEN
IF ( key_entry2 = '0') THEN
.