




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、译文基于FPGA的串行控制器设计Thomas Oelsner QuickkLogicc Euroope 应用注释:QAN200简介目前设计开发和和验证FPGGA系统时,硬硬件描述语言言HDL的使使用变得越来来越主流。采采用行为级描描述不仅提高高了产品的设设计效率,而而且在设计验验证中显示出出其独特的优优势。目前最最流行的HDDL语言是VVeriloog和VHDDL语言。本本文介绍了采采用veriilog语言言对数字异步步串行收发器器进行设计和和验证。UART 通用异步串行收收发器(UART)由二个独立的的HDL模块组成。一个模模块实现发射射功能,而另一个模块则则实现接收功功能。发射和接收收功能
2、模块在在顶层设计时组合合到一起,这种接收和发发射的组合是是通信所必需需的。数据写写入发射器,从从接收器读出出,所有的数数据是以二进进制8字节的形式通过一个双向向CPU接口。由地址映射的的发射机和接接收机通道可可以很容易地地建立接口。两个模块共共用一个主控控时钟,该时时钟为mcllkx16,在每个模块块里,主控时时钟mclkkx16被分分频成独立的的波特率时钟钟。所有英文的图和表的标题要翻译成中文所有英文的图和表的标题要翻译成中文图 SEQ 图表 * ARABIC 1 通用异步步串行收发器器通用异步串行收收发器的特点点是否具有全双工操作标准UART数数据帧格式偶校验或奇校验验模式奇偶错误校验帧错
3、误校验溢出错误校验数据接收准备中中断数据发送准备中中断是是是是是是是是表 UARTT功能概述UART的功能能概况注意下面所有图标的格式,统一是居中,字体要一样。注意下面所有图标的格式,统一是居中,字体要一样。UART的基本本功能概况见见下图。左边为“发送寄存器器”、“发送移位寄寄存器”以及“发送控制逻逻辑模块”,这些模块包包含在发送模模块”txmixx”中。右边为“接收移位寄寄存器”、“接收寄存器器”和“接收控制逻逻辑模块”,这些模块包包含在发送模模块”rxmixx”中。这两个模模块有单独的的输入和输出出的控制线路路,只有双向的的数据总线、主主时钟和复位位线是共享的是共享的。是共享的。图的标题
4、翻译图的标题翻译图2 UARRT框图顶层UART系系统的I/OO功能描述符 号类型描 述mclkx166输入用于主控时钟波波特率的生产产。reset输入主复位输入信号号。parityeerr输出表明被检测的数数据帧有无奇奇偶校验错误误。校验编码码可以基于偶偶数或奇数模模式。framinggerr输出表明从rx输入入的数据串是是否符合如图图2所示的UUART数据据帧格式。overrunn输出表明接收模块准准备接收新数数据是,模块块中仍然有数数据未读取。rxrdy输出表明接收模块已已经接收新数数据,并准备备读取。txrdy输出表明数据已准备备好加载到发发送模块。read输入低电平有效的读读选通信号
5、,用用于从接收模模块中读取数数据。write输入低电平有效的写写选通信号,用用于将数据写写入发送模块块。data7:0输入双向数据总线。数数据通过该总总线进行发送送或接收。tx输出发送模块串行输输出。复位或或闲置时为高高电平。rx输入接收模块串行输输入。复位或或闲置时为高高电平。表 SEQ 图表 * ARABIC 3 UAART的IO接口UART的标准准数据格式图3 UARTT数据帧格式式图的标题要翻译图3为UARTT的串行数据据格式,在串串行数据帧中中包含8位数据位以以及编码比特特的信息。在在连续传输线线路之间,传输线路处处于高电平。传传输从低位的的起始比特开开始,接下来的是8比特的数据据信
6、息,低位对于后后边高位有重重要的作用。然然后是1比特的奇偶偶校验位,对对之前的8比特的数据位进行行奇偶校验。奇奇偶校验位由由奇校验或偶偶校验的形式式进行编码。奇奇偶校验位之之后是高位停停止比特,标标志数据帧的的结束。图的标题要翻译UART时序图图下面显示了数据据是如何写入入“发送寄存器器”并如何加载给“发送移位寄存存器”,及在波特率时钟钟上升沿时如何传输到到tx端进行输出的。图的标题要翻译图的标题要翻译图4 发送时序序图下图显示了数据据如何从rxx端输入写入入“接收移位寄寄存器”并加载到“接收寄存器器”。最后接收收模块发出rrxrdtyy标志位。同上同上图5 接收时序序图发送模块主控时钟称为m
7、mclkx116,被分频频成等于mclkkx16/116的称为txcllk的时钟频频率。数据以以并行的形式式写入模块,而而按照波特率率时钟的频率率以串行的形式从从tx端输出。从tx端输出的的数据按照图图3所示的UARRT数据帧格格式发送。同上同上图6 发送模块块表的标题和内容要翻译。表的标题和内容要翻译。符号类型描 述mclkx166输入用于生成主控时时钟波特率。reset输入主复位输入信号号write输入低电平有效的写写选通信号,将将数据写入发发送模块。data7:0输入数据传输是通过过数据总线写写入发送模块块。在写选通通脉冲的上升升沿,数据总线的的内容锁定在在一个内部的的“发送寄存器器”。
8、tx输出串行数据输出。串串行数据帧通通过这个端口口发送,当复复位或闲置时时,tx保持高电电平。txrdy输出表明数据锁存到到“发送寄存器器”,同时加载载到“发送移位寄寄存器”,“发送寄存器器”准备好接收收新数据。表 2 发送模模块IO接接口功能同上同上符号类型内部标志或信号号的描述thrreg7:008位“发送寄存存器”,用于锁存存发送模块接接收到的数据据。tsrreg7:008位“发送移位位寄存器”,发送模块块的数据通过过此输出。paritymmodewire奇偶校验模式位位表明了发送送模块进行奇奇偶校验的模模式。值为“1”时,为奇校校验,为“0”时,偶校验验。txparittyreg输出t
9、x奇偶校校验的结果。tag1,taag2reg此标志位表明发发送模块的状状态。txclkreg波特率时钟,根根据时钟频率率将数据通过过tx输出。txdonewire表明一个数据串串发送完成。txdatarrdyreg表明“发送寄存存器”已锁存新数数据,准备好好进行发送。parityccyclewire表明tx输出端端接收到txxparitty的值时,发发送模块的状状态。cntreg3:00暂存器,用于将将clkx116时钟分频频为txcllk时钟。表3 发送模块块的内部信号号发送模块的行为为描述发送模块等待新新的数据来写写入模块,新新的数据在发发送模块初始化后后发送。以并并行形式写入入模块的数
10、据据转换成串行行的形式并由由tx端输出。当没没有传输序列列的时候, txx端输出高电平。图的标题要翻译图的标题要翻译图 7发送的流流程发送模块的实现现用Veriloog语言声明明模块端口,这这里定义的信信号,是来自于模块块并在这里输输出的。在这这里并没有详详细地说明方方向。module txmitt(mclkkx16,wwrite,resett,tx,ttxrdy,data);图8 发送模块块的声明同上同上端口定义之后是是端口的方向向,方向为输输入、输出或输入(双向) ,这在表1中已说明。描描述端口方向向之后是声明明内部信号,内部信号在Verilog语言中内部信号声明为“wire”或“reg”
11、数据类型,wire类型用于连续的赋值,也叫做组合声明。reg类型在Verilog语言中用于“always”块,常常用于时序逻辑的赋值,但有时并不是这样,进一步解释见Verilog参考书。模块内部信号的数据类型说明见表3 。我们现在已经进进行所有必要要的声明,并作好准备备看看实际的执行情况。硬件描述语语言使我们可可以用更多的的行为模式来来描述发送模块块的功能,而不是把重重点放在门一级的实际实现现上。软件编编程语言,函函数和过程将庞杂杂的程序变得得更具可读性性和易于维护护。Veriilog语言言提供类似的的函数和任务务结构类似于于软件编程语语言的函数和和过程。一个个Verillog语言的的函数和任
12、务相当于于几行Veriilog代码码,这些代码使使得输入信号号影响输出信信号或变量。函函数和任务通通常用在多行行代码都是重重复出现的地地方, 从而使得得设计易于阅阅读和维护。一个Verilog的函数可以有多个输入,但始终只有一个输出,而Verilog的任务在某些情况下可以同时有多个输入和多个输出。下图显示了Verilog的任务格式,保留了所有必要的语句,用来描述发送模块的传输模式。图的标题要翻译图的标题要翻译图9 发送传输输模式我们可以看到在在移位寄存器器有2个标志位taag1和tag2,创建类似的的任务来描述述发送模块的的“闲置”和“负载”模式。使用Veriilog语言言,现在我们可可以创建
13、一个个“容易阅读”的行为模型型的空穴传输输过程。如在波特率时钟钟的上升沿,ttsr中的内容传输到tx端输出。在tsr传输的的同时,奇偶偶校验位也产产生了,如图10所示。重要的一点,就就是在传输过过程中tsrr会进行补零零。不同的后置标志位tagg 和tsr补零位位的组合表示示不同的传输输模式。如果奇偶校验验循环周期的第二个个周期是高电电平,这意味味着以标志位位tg2的值对tsr11赋值。这是图还是表?这是图还是表?当传输结束时,TTxdonee置高电平,这这意味着以标标志位tg22的置对tx赋赋值。基于所述传输序序列中的不同同状态,“数据位”,“奇偶校验位位”或“停止位”被多路复用用到tx输出
14、。图的标题要翻译图的标题要翻译图10 发送传传输过程传输序列模拟在写操作信号上上升沿时数据据总线被锁存存,在txclkk的下一个上上升沿,thhr的内容加加载到tsrr,tx端输出低低电平的起始始位,同时txrrdy标志位位表明,该tthr再次准备好好要写入新的的数据。在txclkk的每个上升升沿,tsrr的内容被转转移到totx。在数据传输输的同时,奇奇偶校验位也也随之产生。在在第一个奇偶偶校验周期,ttx持续为高高电平,在第第二个周期,tx端获得奇偶校验的结果。传输结束时内部的txdone信号为高电平,tx端也持续高电平。同上同上图11 波特率率为2Mhzz时的发送时时序图接收模块主控时钟
15、mcllkx16分分频到合适的的波特率时钟钟频率,即rxxclk时钟钟,它等于mcllkx16/16。串行行数据在rxx端接收输入入模块,其中中串行数据以以如图3所示的UARRT数据帧格式传输,收收到的数据通通过8位数据总线线以并行的形形式输出。同上同上图1 SEQ 图表 * ARABIC 4 接收模模块符号类型IO接口描述述mclkx166输入用于输入主控时时钟波特率的的生成。reset输入主复位输入信号号。read输入低电平有效的读读选通信号,用用于从接收模模块中读取数数据。data7:0输出数据总线,数据据以并行的形形式从总线中中读取。在读读选通信号的的下降沿,数数据加载到数数据总线。r
16、x输入接收信号,处于于闲置状态时时,保持为高高电平。rxrdy输出表明已接收新数数据,并准备备将其读取。parityeerr输出表明无论是否发发生奇偶校验验错误,都可可以进行奇偶偶校验编码。framinggerr输出表明发送到rxx的串行信号号的数据格式式是否符合如如图3所示的的UART数数据帧格式。overrunn输出表明新数据准备备传输到接收收模块时,接接收模块仍然然有数据未读读取。表4 接收模块块IO接口口信号符号类型内部标志或信号号的描述rhrreg7:008位“接收寄存存器”,用于锁存存接收模块接收收到的数据。rsrreg7:008位“接收移位位寄存器”,接收模块的数数据通过此输输入
17、。paritymmodewire奇偶校验模式位位表明了发送送模块进行奇奇偶校验的模模式。值为“1”时,为奇校校验,为“0”时,偶校验验。rxparittyreg输出rsr奇偶偶校验的结果果。parityggenreg表明数据帧奇偶偶校验后,发发生错误。rxclkreg波特率时钟,根根据时钟频率率进行数据传传输。rxstopwire获取从rx接收收到的数据帧帧的结束位。idlereg接收模块的状态态位。huntreg接收模块的状态态位。rxdatarrdyreg表明新数据以接接收,并准备备读取。rxcntreg3:00暂存器,用于将将clkx116时钟分频频为rxclk时钟钟。表5 接收模块块的
18、内部信号号接收模块行为描描述在连续发送时,传传输线保持高高电平,根据据异步串行UAART标准,接收模块在等待“闲置”模式的rx端变为低电平。在rx的下降沿时,接收模块进入“捕获”模式,因为现在正在在寻找一个新新的数据帧的的有效起始位位。当有效的开开始位被检测测到时,接收收器进入“数据传输”模式。如果果检测到无效效的起始位,接接收模块则进进入“闲置”模式。当接收收到一个数据帧帧时,各种校验验和检查同时时进行。接收收模块接收到到一个完整的的数据帧时,接收端返返回待机模式式,接收模块块基本运作如如下所示。图13接收的流流程图的标题要翻译表的标题和内容要翻译图的标题要翻译表的标题和内容要翻译接收频率为
19、mcclkx166,和第一上上升沿的rxxclk常常常发生在中心心点开始位,如如下图显示,对对于中心点的的起始位及后后边的数据字字节,波特率率时钟是同步步。图的标题要翻译图的标题要翻译图14 同步时时钟rxcllk起始位的的中心点接收器模块的实实现为了创建一个易易读易操作的的接收模块,用用两个Verrilog任任务来描述不不同的接收方方式,当接收收在空闲状态态时,其中一一个Veriilog称为为“空闲复位”,下图中有用用来描述该接收机复位位条件的必要的语句。同上同上图15 复位条条件和闲置模模式下的接收收模块当接收模块不在在复位状态,也也不在空闲状状态下,接收收模块在rxx输入端采样样数据,传
20、输输到移位寄存存器中,同时时根据输入的的数据产生奇奇偶校验位。这这个Verillog任务称为“数据传输”,下图包括所有有以描述上述行行为的必要语句。图的标题要翻译图的标题要翻译图16 接收模模块数据的传传输利用两个Verrilog任任务实现上述述功能,现我我们可以在接收模块的的复位状态、空空闲状态或者者数据传输状状态对接收模模块进行行为为级的描述,所所有上述行为为是和一个叫叫做rxcllk的波特率率时钟同步的的,它们的实实现如下所示示。同上同上图17 接收模模块进程当低电平起始位位到达rsrr0时,一一个完整的数数据帧将会被被接收,在下下一个接收时时钟上升沿到到来时,接收收模块又回到到空闲状态
21、。当当返回空闲状状态时,接收收模块发出“数据接收准准备”中断,表明明新的数据可以以并并行的方式读读取。返回空空闲状态时,对错误的标标志位进行更更新,并清除除已经读取的的数据。在读读信号的下降沿沿,rhr的内容被锁存存到数据总线线。在表8中列举接收收模块进行的的各种错误检检查。错误类型描 述奇偶校验错误检检查接收数据时,奇奇偶校验即已已经开始。奇奇偶校验寄存存器预先设置置为空闲模式式(1=奇校校验,0=偶偶校验)。经经过一次完整整的传输过程程,奇偶校验验寄存器的值值表明是否在在传输过程中中发生奇偶校校验错误。帧传输错误如果接收到的数数据帧的结束束位不为1,可可以认为发生生了帧传输错错误。数据的的
22、格式不符合合如图2所示示的UARTT数据帧格式式。溢出新数据通过rssr接收时,之之前接收的数数据仍未读取取,可以认为为发生了溢出出错误。Rssr的内容无无法加载到rrhr中。表8 接收模块块支持的错误误检查接收序列的模拟拟在连续传输时线线路保持高电电平,在rx输入的下下降沿,内部部信号rxcnnt开始计数数,保持和mmclkx116同步。如果rx输入在mcllkx16的的8个循环周期内保保持低电平,内部空闲标志位复位,这由 rxclk信号进行。这时,Rxclk信号与低位的起始位中心点同步,在接受时钟上升沿,数据从rx传输到rsr。当低位起始位到达rsr0时,在下一个接收时钟上升沿时,空闲标志
23、位被强行置为高电平。在接收序列时,产生rxclk的11个周期,主要是为了采样1位低位起始位,8位数据位,1位奇偶位,1位高位停止位。在返回空闲状态,rsr的内容加载至rhr,内部标志位更新,“rxrdy”标志位表明,rhr的内容可以读出,在读信号的下降沿,rhr的内容锁存到数据总线。图的要求同上图的要求同上图18 波特率率为2Mhzz时接收模块块的时序仿真硬件描述语言仿仿真在这里,我们研研究如何将HDL用于行行为级设计,实实现数字UARTT设计。利用HDLL进行设计可以以使设计更容容易阅读,更容易理解,它还提供了能够方方便地描述在一个复杂的事事件系统中相互紧紧密结合的各各种过程,例例如UART
24、T。我们将了解到这种依依靠各种进程程来描述复杂杂系统的能力力对于仿真而而言是必需的的。在Verillog语言中中仿真激励叫叫做“测试工具”。测试工具具是Veriilog的一一个模块,拥有要生成成仿真激励所所需的所有HHDL代码。进进行仿真时,模块端口将将会把信号映映射到进行仿仿真的设计中中。端口映射是由由将UARTT顶层模块的的模块分层实实例化应用到到“测试工具”中实现的,如下下所示。同上同上图19 顶层UUART模块块实例化这使得仿真激励励可以用来表表示设计的输输入,并同时检测该输输入条件下设设计的输出情况。可以有条件件地通过输出激励对输输入激励的响响应对设计进进行调试,图图19显示说明明测
25、试工具端端口如何映射射到UART的顶顶层。同上同上图20 UAART模型和和测试工具通过测试工具,发发送模块输出出端返回到接收模块输输入端,这使使得发送模块的信号可以用来作为为接收模块的测试信信号。数据以以并行的方式式从发送模块块发送,同时时以串行的形形式回送到接接收模块的输入端端,收到的数数据最终从接接收模块以并并行形式读出。为了尽尽可能实现UUART的自自动化测试, Verilog任务树如下,“写入发送”任务提供了将并行数据写入发送模块的一切必要的声明和语句,以完成“写入发送”功能,并将数据锁存到内部,供测试工具进行分析。“读取接收”任务提供了将并行的数据从接收模块读取出来的一切必要的声明
26、和语句,“读取接收”任务来完成读出功能,并得到锁存在内部的数据并供测试工具进行分析。“数据比较”任务提供了一切必要的声明来比较写入到发送模块的数据和接收到的相应的数据。接收到的数据和接收模块读出的数据进行比较,如果发生任何误差,数据比较标志将发送数据错误标志。当误差发生时,“比较数据”任务将立即停止仿真。除了上面提到的Verilog任务树,测试工具还提供程序语句生成mclkx16、主复位信号、以及“tx to rx”环回功能。该语句不是很重要,并且这里将不加以说明,但可在测试工具本身内作参考。测试工具的核心是一个“for循环”。通过这个“for循环”,执行上述任务的Verilog树才能将所有可
27、能的数据组合写入发送模块,并确保相同的数据被正确接收。For循环如图21所示。同上同上图21 测试工工具的核心代代码上图所示forr循环使用了Verillog“等待”声明。“等待”声明是一个并并发进程声明明。在它的条件件表达式变为为真时,声明开始始执行。这种种情况下,该该循环等待接接收模块完成成序列的接收收后,以“rxrdyy”标志位变高高电平来表示示完成数据序序列的接收。For循环的的停止,是以以 “rxrddy”标志位位变为高电平平作为标志。当当“rxrdyy”变为高电平平,for循循环立即执行行“读取接收”任务,其次次是“比较数据”的任务。根根据如图3所所示的UARRT数据帧格格式显示,
28、测测试工具必须须测试多种不同的数数据组合,以以测试所有可可能的数据组组合格式。当foor循环处理理完所有的数数据组合,“数据比较”任务没有反馈馈任何错误标标志时,测试工具成功完成测试试,并停止运运行。同上同上图22 顶层UUART时序序仿真图22表示使用用2Mhz波波特率的仿真真序列,其执执行了如图221所示的ffor循环。测试的流程1、发送模块执执行“写入发送”任务,数据据写入发送模模块。2、在“写”信信号的上升沿沿,写入的数数据被自动地地加载到 “data_writtten7:0”的信号中。 3、txrdyy标志位表示示发送模块已已经准备好要要写入新的数数据。4、根据所选择择的波特率,数数
29、据以并行的的形式写入发发送模块,并并以串行的形形式通过txx输出。5、tx的输出出反馈到接收收模块的rxx的输入。6、Rxrdyy标志位表示接接收模块已接收新数据。7、在rxrddy标志位信信号的上升沿沿,“for循环环”执行“读取接收”任务。在读信信号的下降沿沿,接收到的的数据被自动动锁存到 “data_receiived77:0”的的信号中。8、Data_receiived77:0信号号与 datta_wriiten77:0信号号进行比较。测试工具的不同同我们已经简要地地讨论了UAART测试工工具以及Veerilogg语言的仿真真方式。上述述的UARTT测试工具采用由设计者者选择的信号号序
30、列来进行读写测测试,但对于更具体体的系统级集集成的UARRT仿真,“写入发送”任务和“读取接收”任务可以很很容易地通过过任何给定的的CPU的读读写周期信号进行调试试修改。如果在实际应用用中,本文提提到的仿真功功能无法完成成实际需要,你你可以修改测测试工具,来来实现需要的的仿真功能。这这是一个锻炼炼自己的好机机会。综合HDL作为设计计方法比传统统的FPGAA设计方式(如原理图设计计)有若干优优势,它同时时需要拥有极大的灵灵活性以及高高性能的实现现综合流程的装装置,UARRT综合流程程专门将两个个灵活的和高性能的的可编程逻辑辑器件FPGGA系列作为为服务对象,如如pASICC-1和pAASIC-2
31、2家族。UART设设计和仿真的文件通过Saroos公司的Turboo Writeer 技术加载到到HDL语言言编辑器,其其中HDL语言编编辑器集成了Synpplicitty公司的快速高高效的综合工工具。综合以后,设设计布局仿真使用QuicckLogiic公司的SpDDE布局布线线工具。经过布局布布线,UARRT设计采用用“backk-annootatedd”的时序模模型进行模拟拟布局。QuickkLogicc公司的QuiickWorrks工具套套件提供了仿真需需要的所有工工具,布线仿真也可可以使用Simuucad公司司的Siloos IIII快速Verrilog仿仿真工具。同上同上图2 SEQ
32、 图表 * ARABIC 5 QuuickWoorks工具具套件The serrial ccontrooller desiggn bassed onn FPGAAIntroduuctionnThe usee of hhardwaare deescripption languuage (HDL) is beecominng a mmore ddominaant faactor, whenn desiigningg and veriffying FPGA desiggns. TThe usse of behavvior llevel descrriptioon nott onlyy incrrea
33、sess the desiggn prooductiivity, but also proviides uuniquee advaantagees in the ddesignn veriificattion. The mmost ddominaant HDDL stooday aare caalled Verillog annd VHDDL. Thhis appplicaation note will illusstratee the use oof Verrilog in deesign and vverifiicatioon of a diggital UART (Univerrsal
34、AAsynchhronouus Receivver & Transmmitterr).Defininng thee UARTT.The UARRT connsistss of ttwo inndepenndent HDL mmodulees. Onne moddule iimplemments thetransmiitter, whille thee otheer moddule iimplemments the rreceivver. TThe trransmiitter and rreceivvermoddules can bbe commbinedd at tthe toop levve
35、l off the desiggn, foor anyy combbinatiions oof traansmittter aand reeceiveer chaannelss requuired. Dataa can be wrrittenn to tthe trransmiitter and rread oout frrom thhe recceiverr, alll throough aa singgle 8 bit bbi-dirrectioonal CCPU innterfaace. AAddresss mappping for tthe trransmiitter and rrec
36、eivver chhannells cann easiily bee builld inttothe intterfacce at the ttop leevel oof thee desiign. BBoth mmodulees shaare a commoon masster cclock calleed mcllkx16. Withhin eaach moodule mclkxx16 arre divvided down to inndepenndent baud rate clockks.UART fuunctioonal ooverviiew.A basicc overrview o
37、f thhe UARRT is shownn beloow. Att the left hand side is shhown “ttransmmit hoold reegisteer”, “ttransmmit shhift rregistter” aand thhe traansmittter “ccontrool loggic” bblock, all contaained withiin thee trannsmittter moodule calleed “txxmit”. At tthe riight hhand sside iis shoown thhe “reeceivee s
38、hifft reggisterr”, “rreceivve holld reggisterr” andd the receiiver “ccontrool loggic” bblock, all contaained withiin thee receeiver modulle callled “rrxcverr”. Thhe twoo moduules hhave sseparaate innputs and ooutputts forr mostt of ttheir contrrol liines, only the bbi-dirrectioonal ddata bbus, mmast
39、err clocck andd reseet linnes arre shaared bby botth moddules.The UARRT staandardd dataa formmat.In figuure 3 is shhown tthe UAART seerial data formaat. Seerial data are ccontaiined wwithinn frammes off 8 daata biits, aas welll as codedd infoormatiion biits. BBetweeen succcessiive trransmiissionns,
40、thhe traansmisssion line is heeld hiigh. AA trannsmisssion iis iniitialiized bby a lleadinng loww starrt bitt. Nexxt to the lleadinng loww starrt bitt comees 8 bbits oof datta infformattion, beginnning with the LLSB annd aftterwarrds reepreseented at inncreassing ssignifficancce ordder upp to tthe M
41、SSB. Neext too the 8 datta bitts commes thhe parrity bbit, rrepressentinng thee pariity reesult of thhe 8 ddata bbits. The pparityy bit can bbe enccoded true basedd on eeven pparityy or oodd paarity mode. Nextt to tthe paarity bit ccomes atraiiling high stop bit iindicaating the eend off a daata frr
42、ame.UART tiiming diagrrams.Below iis shoown, hhow daata wrrittenn to tthe “ttransmmit hoold reegisteer” geets looaded into the “ttransmmit shhift rregistter”, and aat thee risiing eddge off the baud rate clockk, shiifted to txx outpput.Below iis shoown, hhow daata geets shhiftedd fromm rx iinput to
43、thhe “reeceivee shifft reggisterr”, annd aftterwarrds looaded into the “rreceivve holld reggisterr”. Fiinallyy the receiiver rraisess “rxrrdy” fflag.The Traansmittter mmodulee.The masster cclock calleed mcllkx16 are ddivideed dowwn to the pproperr baudd ratee callled txxclk aand eqquals to mcclkx166
44、/16. Data writtten inn paraallel formaat to the mmodulee are latchhed innternaally, and sshifteed in seriaal forrmat tto thee tx ooutputt at tthe frrequenncy off the baud rate clockk. Datta shiifted to thhe tx outpuut folllows the UUART ddata fformatt showwn in fig. 3.Behaviooral ddescriiptionn of t
45、the trransmiitter.The traansmittter wwaits for nnew daata too be wwritteen to the mmodulee. Wheen neww dataa are writtten a transsmit ssequennce iss inittializzed. DData tthat wwas wrrittenn in pparalllel too the modulle getts traansmittted aas serrial ddata fframess at tthe txx outpput. WWhen nno t
46、raansmitt sequuence are iin plaace, tthe txx outpput iss heldd highh.Implemeentatiion off the transsmitteer moddule.Creatinng loggic inn Veriilog sstartss withh the modulle porrt decclarattion. Here definnes siignalss, thaat aree portted too and from the mmodulee. No direcction are sspeciffied aat t
47、hiis poiint.Next too portt defiinitioons coomes pport ddirecttions. Direectionns aree speccifiedd as iinput, outpput orr inouut (biidirecctionaal), aand caan be referrred tto in tablee 1. NNext tto thee speccificaation of poort diirectiions ccomes declaaratioon of interrnal ssignalls. Innternaal sig
48、gnals in Veerilogg are declaared aas “wiire” oor “reeg” daata tyypes. Signaals off the “wiree” typpe aree usedd for contiinuos assiggnmentts, allso caalled combiinatorrial sstatemments. Signnals oof thee “regg” typpe aree usedd for assiggnmentts witthin tthe Veerilogg “alwways” blockk, oftten usse f
49、orrsequenttial llogic assiggnmentts, buut nott neceessariily. FFor fuurtherr expllanatiion seee aVeerilogg refeerencee bookk. Datta typpes off the interrnal ssignalls of the mmodulee can be reeferreed to in taable 33.We hhave nnow paassed by alll neccessarry decclarattions, and are nnow reeady tto l
50、oook at the aactuall impllementtationn. Usiing haardwarre desscripttion llanguaage alllows us too desccribe the ffunctiion off the transsmitteer in a morre behhaviorral maanner, rathher thhan foocus oon its acttual iimplemmentattion aat gatte levvel Inn softtware progrramminng lannguagee, funnctionn
51、s andd proccedurees breeaks llargerr proggrams into more readaable, managgeablee and certaainly mainttainabble piieces. The Verillog laanguagge proovidess funcctionss and taskss asconstruucts, analoogous to sooftwarre funnctionns andd proccedurees. A Verillog fuunctioon andd taskk are used as thhe e
52、quuivaleent too multtiple liness of VVeriloog codde, whhere ccertaiin inpputs oor siggnals affeccts ceertainn outpputs oor varriablees. Thhe usee of ffunctiions aand taasks uusuallly takkes pllace wwhere multiiple llines of coode arre reppeateddly ussed inn a deesign, and hencee makees thee desiign
53、eaasier to reead annd cerrtainlly maiintainn. A VVeriloog funnctionncan havve mulltiplee inpuuts, bbut allways have only one ooutputt, whiile thhe Verrilog task can hhave bboth mmultipple innputs, and multiiple ooutputts andd evenn in ssome ccases, non of eaach. BBelow is shhown tthe Veerilogg taskk
54、, thaat holld alll neceessaryy sequuentiaal staatemennts, tto desscribee the transsmitteer in the “sshift” mode.We heree see the ttwo taag bitts callled ttag1 aand taag2 cooncateenatedd to tthe “ttransmmit shhift rregistter. SSimilaar tassks weere crreatedd to ddescriibe thhe traansmittter iin “iddl
55、e” aand “lload”modes. By ussing tthese Verillog taasks, we caan noww creaate a very“ easy to reead” bbehaviioral modell of tthe hoole trransmiit proocess.If txdoone annd tx datarrdy booth arre truue, thhe traansmittter eenter load mode. Nextt to tthe looad moode, tthe trransmiitter enterrs shiift mo
56、ode. AAt thee risiing eddge off the baud rate clockk, thee conttents of tssr aree shiffted tto thee tx ooutputt. Parrity ggeneraation takess placce durring sshiftiing off the tsr, as shhown bbelow.Its immportaant too notee, thaat thee tsr are zzero ffilledd duriing trransmiissionn. Thee combbinatiio
57、n off the two ttrailiing taag bitts andd the zero filleed tsrr indiicatess the diffeerent statees durring sshiftiing. PParityycyclee is hhigh oon cyccle neext too lastt cyclle, thhat meeans wwhen ttsr1 getss tag22.Txdone is hiigh whhen shhiftinng is over, thiss meanns wheen tx gets tag2.Based oon th
58、ee diffferentt stattes duuring the ttransmmissioon seqquencee, “daata biits”, “pariity biit” orr “stoop bitt” aree ultiiplexeed to the ttx outtput.Simulattion oof a ttransmmit seequencceThe conntentss of tthe daata buus aree latcched iinto tthr att the risinng edgge of writee. At the nnext rrisingg
59、edgee of ttxclk, the conteents oof thrr are loadeed intto tsrr, thee actiive loow staart biit is asserrted tto tx, and the ttxrdy flag indiccates, thatt thr againn is rready for nnew daata too be wwritteen. Att eachh risiing eddge off txcllk, thhe conntentss of ttsr iss shiffted ttotx. Paritty genne
60、ratiion taakes pplace durinng shiiftingg of ddata. Paritty cyccle iss highh one cyclee nextt to llast ccycle, and tx geets thhe parrity rresultt. Thee inteernal txdonne is high when shiftting iis oveer, annd thee actiive hiigh sttopbitt is aassertted too tx.For furrther detaiils onn the impleementaa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西上饶市信州区投资控股集团有限公司第一次招聘6人考前自测高频考点模拟试题完整参考答案详解
- 张家口市中医院安宁疗护的理念与社区实践考核
- 2025昆明市滇池国家旅游度假区消防救援大队政府专职消防队员招聘(7人)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025华天集团中层管理岗位公开招聘考前自测高频考点模拟试题及答案详解一套
- 2025年南安市部分公办学校专项招聘编制内新任教师(二)考前自测高频考点模拟试题带答案详解
- 2025广西柳州市港航发展中心招聘编外合同制工作人员1人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025吉林省矿业集团有限责任公司遴选31人考前自测高频考点模拟试题及答案详解(有一套)
- 邢台市中医院烤瓷熔附金属冠技能考核
- 唐山市人民医院泌尿外科住院医师晋升主治医师考核
- 衡水市中医院心脏核素显像适应证与结果判读考核
- 锂电池、新能源汽车火灾事故灭火救援处置
- 《公路技术状况评定》课件-任务六:公路技术状况指数MQI
- 油气输送管道穿越工程施工规范
- 酒店客房入住数据分析表格
- 中级财务会计知到课后答案智慧树章节测试答案2025年春云南财经大学
- 2025青海省建筑安全员B证考试题库及答案
- 新版机动车交通事故责任强制保险合同
- 临床检验基础知到智慧树章节测试课后答案2024年秋上海健康医学院
- 铸牢中华民族共同体意识心得感悟7篇
- 《中国海洋大学》课件
- “雄鹰杯”全国小动物医师技能大赛考试题库(660题)
评论
0/150
提交评论