EDA原理及应用 何宾 2008.11.

Slides:



Advertisements
Similar presentations
实验四 利用中规模芯片设计时序电路(二).
Advertisements

《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月19日星期日.
第4章 VHDL设计初步.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
在PHP和MYSQL中实现完美的中文显示
EPF10K10TI144-4晶片燒錄.
第三章 组合逻辑电路 第一节 组合电路的分析和设计 第二节 组合逻辑电路中的竞争与冒险 第三节 超高速集成电路硬件描述语言VHDL
第1章 FPGA概述 1.1 FPGA的发展历程 1.2 FPGA的基本原理 1.3 FPGA的设计方法 1.4 FPGA的设计流程
陳慶瀚 MIAT嵌入式系統實驗室 國立中央大學資工系 2009年11月12日
主要内容 串行口的结构 串行口的工作方式 波特率的计算 简单应用
VHDL數位電路實習與專題設計 文魁資訊-UE301
VHDL數位電路實習與專題設計 文魁資訊-UE301
8.9二进制振幅键控(ASK) 调制器与解调器设计
AVR单片机软硬件设计教程-入门篇 ——学单片机就要学AVR!
VHDL 硬體描述語言 數位電路設計實務 第四章 VHDL 的語言結構.
第8章 SCI/SPI串行通信模块 并行---多位同时传输。速度快,距离近,占引脚多,抗干扰弱
VHDL 硬體描述語言 數位電路設計實務 第六章 函數副程序以及套件程式庫.
EDA原理及应用 何宾
EDA原理及应用 何宾
使用VHDL設計—4位元減法器 通訊一甲 B 楊穎穆.
EDA原理及应用 何宾
第九章 数字系统设计 数字系统设计概述 ASM图、MDS图以及 ASM图至MDS图的转换 数字密码引爆器系统设计 数字系统设计实例 小结.
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
使用VHDL設計—向上&向下計數器 通訊一甲 B 楊穎穆.
VHDL硬件描述语言及其应用 -数字IC前端设计实例
使用VHDL設計-XOR_GATE 通訊一甲 B 楊穎穆.
ARDUINO+BLUETOOTH Arduino实现蓝牙数据传输.
第15章 串行通信及接口电路.
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
使用VHDL設計--Moore Machine
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2013年5月28日
利用Arduino制作定向装置 核科学与技术系 崔伟毅 梁嘉祺
第12章 图像边缘检测器的设计与分析 12.1 系统设计要求 12.2 系统设计方案 12.3 主要LPM原理图和VHDL源程序
CPU结构和功能.
精简指令集(RISC)CPU的构造原理和设计方法
第 2 章 数字逻辑电路基础 和计算机中的逻辑部件
第五章 VHDL设计基础 本章重点: 本章难点: VHDL程序结构 VHDL的基本数据类型 VHDL的基本描述语句 基本组合逻辑电路设计
第 5 章 串行通信.
Instructions: Language of the Machine
第六章 VHDL设计共享.
第五章 VHDL主要描述语句.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
使用VHDL設計—4位元ALU電路 通訊一甲 B 楊穎穆.
第一次上机安排 第六周 第七周 周一晚(提高1、2,通信001~012) 周二上(通信014~085) 周四上(通信086~154)
抢答器 设计一个2人抢答器。要求如下: 设计任务 1.两人抢答,先抢为有效,用发光二极 管显示是否抢到优先答题权。
8.4 ADC0809接口电路及程序设计.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
计算机学院 数字逻辑实验的要求.
5-6 串列埠模式0輸出埠擴充實習.
VisComposer 2019/4/17.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
设计示例一 用门级结构描述D触发器:.
數位邏輯設計 VHDL.
使用VHDL設計-XOR_GATE 通訊一甲 B 楊穎穆.
第二部分 微机原理 第9章 串行通信 及其接口 主讲教师:喻红.
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
使用VHDL設計-8x1多工器 通訊一甲 B 楊穎穆.
数字时钟设计及实现 何宾
第7章 VHDL设计应用实例 7.1 8位加法器的设计 7.2 分频电路 7.3 数字秒表的设计.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2009年10月22日
Programmable Logic System Design
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2013年5月28日
第八章 串行接口 8-1 串行通信的基本概念 8-2 可编程串行接口8251A A的应用.
ADC0809并行A/D转换 (实验十) DAC0832并行D/A转换实验 (实验十一) RS232串口通信实验 (实验九)
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第七章 基本逻辑电路设计.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
Programmable Logic System Design
Presentation transcript:

EDA原理及应用 何宾 2008.11

第十二章 第 12章 UART的设计和实现-本章概要 本章给出了PLD器件在简单通信系统的应用-UART设计。通用异步接收/发送器的设计也是PLD在通信系统的经典应用。 该章首先介绍了UART设计原理,其中包括UART原理和设计描述、接收模块设计,随后介绍了UART的VHDL代码描述,最后介绍了URAT的软件仿真验证和硬件验证。

第十二章 ● UART的设计和实现 设计原理 基于通用异步接收发送器UART的RS-232接口是以前计算机上提供的一个串行数据接口,用来将接收的串行数据转换成并行数据,同时将并行数据转换成串行数据后发送出去。当PLD和其它外设通过串口通信时就非常有用。 UART发送的数据,经过电平转换后,传送到PLD的外部串行总线接口,然后这些串行数据被送到PLD内部进行处理。被处理的数据然后转换为串行数据经电平转换后传回串口。

UART的设计和实现 设计原理 设计包含以下几个方面 并行/串行和串行/并行数据转换 使用用户定义的奇偶校验位(缺省设置为奇校验) 第十二章 ● UART的设计和实现 设计原理 设计包含以下几个方面 并行/串行和串行/并行数据转换 使用用户定义的奇偶校验位(缺省设置为奇校验) 数据波特率可修改(缺省9600) 包含测试代码和测试向量

UART的设计和实现 符号描述图 ● RXD TXD DBIN DBOUT RDA RDA RD TBE WR PE RST OE FE 第十二章 ● UART的设计和实现 符号描述图 UART RXD TXD DBIN DBOUT RDA RDA RD TBE WR PE RST OE FE

第十二章 UART的设计和实现 ● 原理的设计和描述 UART设计主要包括两部分:并行数据转化成串行数据,串行数据转换成并行数据。UART设计的接收端口将接收到的串行数据转换成并行数据,同时UART的发送端口负责并行数据转换成串行数据。测试代码完成对UART设计的验证,该验证已经在Xilinx大学计划提供的开发平台进行了验证,该设计也很容易的移植到其它的EDA平台上。

UART的设计和实现 原理的设计和描述 ● RXD DBOUT RDA RDA RD PE CLK OE FE 第十二章 接收模块 发送模块 DBIN TXD WR TBE CLK

第十二章 UART的设计和实现 ● 原理的设计和描述 UART设计包含两个主要模块,这两个模块封装在一个UART的设计文件中。这两个模块一个处理接收的串行数据,另一个处理发送的串行数据。接收模块的端口接收一个字节的有效数据,并将其转换成8位的并行数据。转换的并行数据放在DBOUT端口。发送模块将发送的数据送到DBIN端口,并且将其转换成一个字节的串行发送数据,转换完的数据TXD端口上。

UART的设计和实现 接收模块的设计 接收模块接收串行数据并将其转换为并行数据。该设计包括下面几个部分: 第十二章 UART的设计和实现 ● 接收模块的设计 接收模块接收串行数据并将其转换为并行数据。该设计包括下面几个部分: 串行数据控制器 用于同步的两个计数器 移位寄存器,移位寄存器保存来自RXD的数据。 错误比特控制器。 来自RXD串口的数据以一定的波特率被接收,所以需要有个控制器同步接收数据的采集相位。串行同步控制器的设计采用了一个状态机和两个同步计数器。在设计中,在每个接收比特数据的中间采集数据。

UART的设计和实现 接收模块状态机的状态图 ● 第十二章 Datactr!=”1010” ctr(3)=’1’ or RXD=’1’ idle dataRst=’1’ ctRst=’1’ EightDelay Waitfor0 Waitfor1 CheckStop CE=’1’ GetData dataIncr=’1’ rShift=’1’ RST RXD=’0’ ctr!=”1000” Ctr(3)=’0’ Ctr(3)=’1’ Ctr(3)=’0’and

UART的设计和实现 接收模块状态机的状态图 第十二章 UART的设计和实现 ● 接收模块状态机的状态图 当处于idle状态时,串行数据管脚RXD处于高电平状态,在该状态一直等待直到检测到RXD为低电平时,进入到EightDelay状态。 在该状态,主要是进行同步,使得在每个比特位的中间采样数据,计数器ctr比波特率快16倍。在该状态下,ctr计数到8。然后进入到WaitFor0状态,waitfor1状态跟在其后,这两个状态的转移由ctr的最高两位确定。进入到GetData状态时,开始对RXD数据进行移位。 这两个状态保证有足够的延迟保证读取采样数据的正中间。当计数器计数到10(8个数据位、一个奇偶位和一个停止位),然后进入到CheckStop状态。这个状态进行奇偶校验。当该状态结束后,进入到idle状态。

UART的设计和实现 对接收数据进行采样的时序的描述 ● 第十二章 START D0 D1 D2 D3 D4 D5 D6 D7 PAR STOP

UART的设计和实现 差错控制的实现 差错控制寄存器分析接收到的数据,并对三种错误进行判断:奇偶错、帧错误和溢出错误。 第十二章 UART的设计和实现 ● 差错控制的实现 差错控制寄存器分析接收到的数据,并对三种错误进行判断:奇偶错、帧错误和溢出错误。 奇偶错误指接收数据的得到的校验和与接收到的Par不一样。当进行偶校验的时候,D0到D7的和应该是偶数,否则是奇校验。该设计中缺省设置为偶校验。当奇偶校验错误时,PE端口为高。 帧错误是指UART在给定的时序没有正确的读到数据。当停止位不为1时,表示帧错误,此时FE端口为1。 溢出错误是指,当前帧接收完,但还没有读时下一帧数据就到了的情况。当单字节的串行数据可读时RDA为高,移位后的并行数据放在DBOUT端口。一旦RDA端口为高,且此时数据仍在DBOUT端口时,OE溢出错误标志为高。

第十二章 UART的设计和实现 ● 接收模块内各个子模块的连接关系图

UART的设计和实现 发送模块的状态机的设计 第十二章 UART的设计和实现 ● 发送模块的状态机的设计 发送模块接收来自DBIN模块的数据,并以串行数据的发送发送到TxD端口上。发送端口的波特率和接收数据的波特率一样,接收和发送波特率的修改方式一样。为了发送存储在DBIN端口的数据,发送模块必须有一个发送控制器、两个控制数据的波特率的同步计数器和发送移位寄存器。两个计数器中的一个计数器用于延迟发送控制器,另一个计数器用来计算发送的串行数据位的个数。TXD端口和发送移位寄存器的最低位连接。

UART的设计和实现 发送模块的状态机的状态图 ● 第十二章 tfctr=”1001” Delay CheckStop CE=’1’ RST WR=‘0’ idle tdelayRst=’1’ TBE=’1’ Transfer tdelayrst=’ load=’1’ tclkrst=’1’ ’ Shift Shift=’1’ Tfctr=’1’ Delay CheckStop CE=’1’ RST WR=’1’ Tfctr!=”1001” Tdelayctr= bandrate

第十二章 UART的设计和实现 ● 发送模块的状态机 UART在idel状态,当WR为高时状态发生变化。然后,发送模块加载DBIN端口的数据,下一个状态发送数据。 Transfer状态准备发送移位寄存器发送数据。设置load=’1’,移位寄存器开始加载数据,其顺序是一个起始位、一个字节的DBIN数据、一个奇偶校验位和一个停止位。下一个状态进入到shift状态。在该状态下,移位信号置‘1’,表示移位寄存器移1。Tfincr信号也置1表示递增数据计数器。如果数据计数器不等于9,表示发送移位寄存器没有进行移位操作,此时进入delay状态。如果移位完成,此时进入WaitWrite状态。

第十二章 UART的设计和实现 ● 发送模块的状态机 在delay状态下,发送数据按照正确的波特率发送数据。当tdelayctr与波特率常数一样时,结束该状态。进入到Shift状态。一旦进入到waitwrite状态,结束发送过程。在这个状态需要确认WR信号为高,才能开始发送过程。

第十二章 UART的设计和实现 ● 发送模块的状态机内部结构

UART的设计和实现 UART的VHDL设计代码 ● entity UARTcomponent is 第十二章 UART的设计和实现 ● UART的VHDL设计代码 entity UARTcomponent is Port ( TXD : out std_logic:= '1'; RXD : in std_logic; CLK : in std_logic; DBIN : in std_logic_vector (7 downto 0); DBOUT : out std_logic_vector (7 downto 0); RDA : inout std_logic; TBE : out std_logic := '1'; RD : in std_logic; WR : in std_logic; PE : out std_logic; FE : out std_logic; OE : out std_logic; RST : in std_logic:= '0'); end UARTcomponent;

UART的设计和实现 UART的VHDL设计代码 ● architecture Behavioral of UARTcomponent is 第十二章 UART的设计和实现 ● UART的VHDL设计代码 architecture Behavioral of UARTcomponent is type rstate is(strIdle,strEightDelay,strGetData,strWaitFor0,strWaitFor1,strCheckStop); type tstate is (sttIdle,sttTransfer,sttShift,sttDelay,sttWaitWrite); constant baudRate : std_logic_vector(12 downto 0) := "1010001011000"; constant baudDivide : std_logic_vector(8 downto 0) := "101000110"; signal rdReg : std_logic_vector(7 downto 0) := "00000000"; signal rdSReg : std_logic_vector(9 downto 0) := "1111111111"; signal tfReg : std_logic_vector(7 downto 0); signal tfSReg : std_logic_vector(10 downto 0) := "11111111111"; signal clkDiv : std_logic_vector(9 downto 0) := "0000000000"; signal ctr : std_logic_vector(3 downto 0) := "0000"; signal tfCtr : std_logic_vector(3 downto 0) := "0000" signal dataCtr : std_logic_vector(3 downto 0) := "0000";

UART的设计和实现 UART的VHDL设计代码 ● 第十二章 signal parError : std_logic; signal frameError : std_logic; signal CE : std_logic; signal ctRst : std_logic := '0'; signal load : std_logic := '0'; signal shift : std_logic := '0'; signal par : std_logic; signal tClkRST : std_logic := '0'; signal rShift : std_logic := '0'; signal dataRST : std_logic := '0'; signal dataIncr : std_logic := '0'; signal tfIncr : std_logic := '0'; signal tDelayCtr : std_logic_vector (12 downto 0); signal tDelayRst : std_logic := '0'; signal strCur : rstate := strIdle; signal strNext : rstate; signal sttCur : tstate:= sttIdle; signal sttNext : tstate;

UART的设计和实现 UART的VHDL设计代码 ● begin 第十二章 UART的设计和实现 ● UART的VHDL设计代码 begin ------------------------------------------------------------------------- --Title: Initial signal definitions frameError <= not rdSReg(9); parError <= not ( rdSReg(8) xor (((rdSReg(0) xor rdSReg(1)) xor (rdSReg(2) xor rdSReg(3))) xor ((rdSReg(4) xor rdSReg(5)) xor (rdSReg(6) xor rdSReg(7)))) ); DBOUT <= rdReg; tfReg <= DBIN; TXD <= tfsReg(0); par <= not ( ((tfReg(0) xor tfReg(1)) xor (tfReg(2) xor tfReg(3))) xor ((tfReg(4) xor tfReg(5)) xor (tfReg(6) xor tfReg(7))) );

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Clock Divide counter process (CLK, clkDiv) begin if (CLK = '1' and CLK'event) then if (clkDiv = baudDivide or ctRst = '1') then clkDiv <= "0000000000"; else clkDiv <= clkDiv +1; end if; end process;

UART的设计和实现 UART的VHDL设计代码 --Title: Transfer delay counter 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Transfer delay counter process (CLK, tDelayCtr) begin if (CLK = '1' and CLK'event) then if (tDelayCtr = baudRate or tDelayRst = '1') then tDelayCtr <= "0000000000000"; else tDelayCtr <= tDelayCtr+1; end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: ctr set up process (CLK) begin if CLK = '1' and CLK'Event then if ctRst = '1' then ctr <= "0000"; elsif clkDiv = baudDivide then ctr <= ctr + 1; else ctr <= ctr; end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 --------------------------------------------------------------------------- --Title: transfer counter ------------------------------------------------------------------------- process (CLK, tClkRST) begin if (CLK = '1' and CLK'event) then if tClkRST = '1' then tfCtr <= "0000"; elsif tfIncr = '1' then tfCtr <= tfCtr +1; end if; end process;

UART的设计和实现 UART的VHDL设计代码 ● 第十二章 ------------------------------------------------------------------------- --Title: Error and RDA flag controller process (CLK, RST, RD, CE) begin if RD = '1' or RST = '1' then FE <= '0'; OE <= '0'; RDA <= '0'; PE <= '0'; elsif CLK = '1' and CLK'event then if CE = '1' then FE <= frameError; PE <= parError; rdReg(7 downto 0) <= rdSReg (7 downto 0); if RDA = '1' then OE <= '1'; else OE <= '0'; RDA <= '1'; end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Receiving shift register process (CLK, rShift) begin if CLK = '1' and CLK'Event then if rShift = '1' then rdSReg <= (RXD & rdSReg(9 downto 1)); end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Incoming Data counter process (CLK, dataRST) begin if (CLK = '1' and CLK'event) then if dataRST = '1' then dataCtr <= "0000"; elsif dataIncr = '1' then dataCtr <= dataCtr +1; end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Receiving State Machine controller process (CLK, RST) begin if CLK = '1' and CLK'Event then if RST = '1' then strCur <= strIdle; else strCur <= strNext; end if; end process;

UART的设计和实现 UART的VHDL设计代码 ● 第十二章 ------------------------------------------------------------------------- --Title: Receiving State Machine process (strCur, ctr, RXD, dataCtr) begin case strCur is when strIdle => dataIncr <= '0'; rShift <= '0'; dataRst <= '1';CE <= '0'; ctRst <= '1'; if RXD = '0' then strNext <= strEightDelay; else strNext <= strIdle; end if; when strEightDelay => dataIncr <= '0'; rShift <= '0'; dataRst <= '1'; CE <= '0'; ctRst <= '0'; if ctr(3 downto 0) = "1000" then strNext <= strWaitFor0; else strNext <= strEightDelay; end if; when strGetData =>CE <= '0';dataRst <= '0';ctRst <= '0'; dataIncr <= '1';rShift <= '1'; strNext <= strWaitFor0; when strWaitFor0 => CE <= '0'; dataRst <= '0';ctRst <= '0'; dataIncr <= '0'; rShift <= '0'; if dataCtr = "1010" then strNext <= strCheckStop; elsif ctr(3) = '0' then strNext <= strWaitFor1; else strNext <= strWaitFor0; end if; when strWaitFor1 =>CE <= '0'; dataRst <= '0'; ctRst <= '0';dataIncr <='0'; rShift <= '0'; if ctr(3) = '0' then strNext <= strWaitFor1; else strNext <= strGetData; end if; when strCheckStop =>dataIncr <= '0';rShift <= '0';dataRst <= '0';ctRst <= '0';CE <= '1'; strNext <= strIdle; end case; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Transfer shift register controller process (load, shift, CLK, tfSReg) begin if CLK = '1' and CLK'Event then if load = '1' then tfSReg (10 downto 0) <= ('1' & par & tfReg(7 downto 0) &'0'); elsif shift = '1' then tfSReg (10 downto 0) <= ('1' & tfSReg(10 downto 1)); end if; end process;

UART的设计和实现 UART的VHDL设计代码 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Transfer State Machine controller process (CLK, RST) begin if (CLK = '1' and CLK'Event) then if RST = '1' then sttCur <= sttIdle; else sttCur <= sttNext; end if; end if; end process;

UART的设计和实现 UART的VHDL设计代码 ● 第十二章 UART的设计和实现 ● UART的VHDL设计代码 ------------------------------------------------------------------------- --Title: Transfer State Machine process (sttCur, tfCtr, WR, tDelayCtr) begin case sttCur is when sttIdle => TBE <= '1';tClkRST <= '0'; tfIncr <= '0'; shift <= '0'; load <= '0';tDelayRst <= '1'; if WR = '0' then sttNext <= sttIdle; else sttNext <= sttTransfer; end if; when sttTransfer =>TBE <= '0'; shift <= '0';load <= '1'; tClkRST <= '1'; tfIncr <= '0';tDelayRst <= '1'; sttNext <= sttDelay; when sttShift =>TBE <= '0';shift <= '1';load <= '0';tfIncr <= '1';tClkRST <= '0';tDelayRst <= '0'; if tfCtr = "1001" then sttNext <= sttWaitWrite; else sttNext <= sttDelay; end if;

UART的设计和实现 UART的VHDL设计代码 ● 第十二章 UART的设计和实现 ● UART的VHDL设计代码 when sttDelay =>TBE <= '0'; shift <= '0'; load <= '0'; tClkRst <= '0';tfIncr <= '0';tDelayRst <= '0'; if tDelayCtr = baudRate then sttNext <= sttShift; else sttNext <= sttDelay; end if; when sttWaitWrite =>TBE <= '0';shift <= '0';load <= '0';tClkRst <= '0'; tfIncr <= '0';tDelayRst <= '0'; if WR = '1' then sttNext <= sttWaitWrite; else sttNext <= sttIdle; end if; end case; end process; end Behavioral;

第十二章 UART的设计和实现 ● UART设计验证 对UART的验证包括两个部分,串/并转换和并/串转换。在验证的时候,可以直接在EDA平台上直接验证。该设计在Digilent Pegasus板上验证通过。该设计验证的方法是盘扫描码通过PC机上的超级终端以波特率9600发出,通过串行传输后,然后再8个LED上进行显示。然后这个键盘扫描码正确的传回来。 在不同的平台上进行验证的要求是,首先要完成前面的VHDL设计文件,然后完成用户约束文件,将平台上的串口和PC正确的连接。下面给出该设计验证的结构图。

UART的设计和实现 第十二章 ● UART设计验证

第12章 习 题 1、说明基于PLD的UART的结构及其实现原理。 2、在ISE软件和相关的硬件平台上完成本章所介绍的 UART的设计。