📄 serialport_tx.vhd
字号:
--/*****************************************************************************
-- * 源文件: serialport_tx.vhd
-- * 模块: 串口发送
-- * 版权:
-- * Copyright(C) 北京联华众科科技有限公司
-- * www.lianhua-zhongke.com.cn
-- * 版本: Version 1.0
-- *
-- * 功能说明:
-- * 将并行输入的 8位数据在数据已好信号有效时,通过串口串行发送
-- * 串口工作参数:
-- * 波特率: 9600
-- * 数据位数: 8
-- * 奇偶位: 无
-- * 停止位: 1
-- *
-- * 参数说明:
-- * 输出
-- * tx - 数据发送
-- *
-- * 输入
-- * data_ready - 输入数据已好信号
-- * data - 待发送数据
-- * clock - 波特率频率*2
-- * reset - 复位信号,低电平有效
-- *
-- * 参数
-- *
-- * 变更记录:
-- * 2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY serialport_tx IS PORT ( tx : OUT STD_LOGIC; data_ready : IN STD_LOGIC; data : IN STD_LOGIC_VECTOR(7 downto 0); clock : IN STD_LOGIC;--baudrate*2 reset : IN STD_LOGIC );END serialport_tx;ARCHITECTURE serialport_tx_architecture OF serialport_tx IS BEGIN PROCESS(clock, reset) VARIABLE currentState : INTEGER RANGE 0 TO 15 := 0; VARIABLE nextState : INTEGER RANGE 0 TO 15 := 0; VARIABLE bit_index : INTEGER RANGE 0 TO 7 := 0; VARIABLE idata : STD_LOGIC_VECTOR(7 downto 0) := "00000000"; VARIABLE tmp : STD_LOGIC; BEGIN IF (reset = '0') THEN tx <= '1'; currentState := 0; nextState := 0; bit_index := 0; idata := "00000000"; ELSIF(clock = '1' AND clock'EVENT) THEN currentState := nextState; IF (currentState = 0) THEN bit_index := 0; IF (data_ready = '1') THEN idata := data; tx <= '0'; nextState := 1; ELSE idata := X"00"; tx <= '1'; nextState := 0; END IF; ELSIF (currentState>=1 AND currentState<=9) THEN IF (bit_index = 8) THEN tx <= '1'; nextState := 10; ELSE tx <= idata(bit_index); bit_index := bit_index + 1; nextState := currentState + 1; END IF; ELSIF (currentState = 10) THEN tx <= '1'; nextState := 0; ELSE tx <= '1'; nextState := 0; END IF; END IF; END PROCESS;END serialport_tx_architecture;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -