好文档 - 专业文书写作范文服务资料分享网站

串口接收模块的verilog设计

天下 分享 时间: 加入收藏 我要投稿 点赞

武汉理工大学《能力强化训练》课程设计说明书

目录

串口接收模块的verilog设计............................................................................... 1 1现场可编程门阵列FPGA ................................................................................... 2 2 Verilog HDL简介 ................................................................................................. 3 3串行通信系统 .................................................................................................... 3

3.1串行通信概念 ......................................................................................... 4 3.3 RS-232总线 ............................................................................................. 5

3.3.1 RS-232接口特性 .......................................................................... 5 3.3串行通信接口组成 ................................................................................. 6 3.4 通信协议 ................................................................................................ 7 3.5系统整体结构 ......................................................................................... 8 4 UART简介 ........................................................................................................... 9

4.1 接收模块功能设计描述 ...................................................................... 11 4.2波特率模块 ........................................................................................... 16 4.3验证 ....................................................................................................... 17 5总结体会 .......................................................................................................... 18 参考文献.............................................................................................................. 19

武汉理工大学《能力强化训练》课程设计说明书

串口接收模块的verilog设计

摘要:UART(即Universal Asynchronous Receiver Transmitter)是数据通信及控制中广泛使用的一种全双工串行数据传输协议。本设计基于 FPGA器件实现对UART的波特率产生器、UART发送器和接收器及其整合电路的模块化设计,采用Verilog HDL语言对三个功能模块进行硬件描述。通过串口调试助手进行验证,其结果完全符合UART协议的要求和预期的结果。

关键词:UART FPGA Verilog HDL 验证

1

武汉理工大学《能力强化训练》课程设计说明书

1现场可编程门阵列FPGA

20世纪80年代中期,FPGA刚出现时,大部分用来实现粘合逻辑、中等复杂度的状态机和相对有限的数据处理任务。在20世纪90年代早期,FPGA的规模和复杂度开始增加,那时它们的主要场所在通信和网络领域。到了20世纪90年代末,FPGA在消费、汽车和工业领域的应用经历了爆炸式增长。21世纪早期,已经可以买到数百万容量的高性能FPGA。今天FPGA几乎可以用来实现任何东西,包括通信设备和软件定义无线电,雷达、影像和其它数字信号处理的应用,直至包含硬件和软件的片上系统。

FPGA(field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路出现的,既解决了制定电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:

1、采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2、FPGA可做其它全定制或半定制ASIC电路的中试样片。 3、FPGA内部有丰富的触发器和I/O引脚。

4、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式

当加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片

2

武汉理工大学《能力强化训练》课程设计说明书

FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。当然FPGA存在于在某些场合选它而不是单片机的优势:

⑴FPGA运行速度快:FPGA内部集成锁项环,可以把外部时钟倍频,核心频率可以到几百M,而单片机运行速度低的多。在高速场合,单片机无法代替FPGA。

⑵FPGA管脚多,容易实现大规模系统:单片机IO口有限,而FPGA动辄有数百个IO口,可以方便连接外设。比如一个系统有多路AD、DA,单片机要进行仔细的资源分配,总线隔离,而FPGA由于丰富的IO资源,可以很容易用不同IO连接各外设。

⑶FPGA内部程序并行运行,有处理更复杂功能的能力:单片机程序是串行执行的,执行完一条才能执行下一条,在处理突发事件时只能调用有限的中断资源;而FPGA不同,逻辑可以并行执行,可以同时处理不同任务,这就导致了FPGA工作更有效率。

⑷FPGA有大量软核,可以方便进行二次开发:FPGA甚至包含单片机和DSP软核,并且IO数仅受FPGA自身IO限制,所以FPGA又是单片机和DSP的超集,也就是说,单片机和DSP能实现的功能,FPGA一般都能实现。

2 Verilog HDL简介

Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

Verilog HDL是目前世界上最流行的两种硬件描述语言之一,是在20世纪80年代中期开发出来的。Verilog HDL这种硬件描述语言被用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

3串行通信系统

在计算机系统和微机网络的快速发展领域里,串行通信在数据通信及控制系统中得到广泛的应用。UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,利

3

武汉理工大学《能力强化训练》课程设计说明书

用Verilog-HDL语言对这三个功能模块进行描述并加以整合UART是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。

3.1串行通信概念

计算机与计算机,计算机与外部设备进行数据交换也称为通信,一般有两种方式:并行通信和串行通信。信息的各位数据被同时传送的通信方法是并行通信,并行通信依靠I/O接口来实现。并行通信中,数据有多少位就需要多少条信号传输线,这种通信方式快,但由于传输线较多,所以成本较高,仅适合近距离通信,通常传送距离小于30米,常用的并行通信协议有SPP、EPP、ECP等。当距离大于30米时则多采用串行通信方式,串行通信是指外部设备和计算机间使用一根数据线(另外需要地线,可能还需要控制线)进行数据传输的方式。数据在一根数据线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。与并行通信方式相比,有以下优点:

(1)传输距离长,可达数千公里。

(2)长距离内串行数据传送速率会比并行数据传送速率快,串行通信的通信时钟频率比并行通信更容易提高。

(3)抗干扰力强,串行通信信号间的相互干扰完全可以忽略。 (4)通信成本低。

(5)传输线既传输数据,又传输联络信息。 因此串行通信得到广泛的应用。 在串行通信中,数据通常在发送器和接收器间进行双向传送,而这种传送又根据需要可分为单工通信、半双工通信和全双工通信。

通常情况下,根据信息传送格式,串行通信又分为两类:异步串行通信和同步串行通信。同步串行通信是按软件识别同步字符来实现数据传送的;异步串行通信是一种利用字符再同步技术通信方式。

同步通信是以数据块的方式传送的,数据传输率高,适合高速率、大容量的数据通信。同步通信在数据开始处用一个同步字符来指示。同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相信始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。在发送时要插入同步字符,接收端在检测到同步字符后,就开始接收任意位的串行数据,同步通信具有较高的传输率,但对硬件要求较高。

异步通信是以字符为单位传送数据的,数据传送可靠性高,适合低速通信的场合。异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。

然而本设计目的是在FPGA的基础上设计串口通信系统,而且本文采用的是RS-232C总线接口标准作为串行通信的交通工具,所以是采用按位传送的异步串行通信协议。

4

串口接收模块的verilog设计

武汉理工大学《能力强化训练》课程设计说明书目录串口接收模块的verilog设计...............................................................................11现场可编程门阵列FPGA......................................
推荐度:
点击下载文档文档为doc格式
6qk4u4epfz9x6b6430vk
领取福利

微信扫码领取福利

微信扫码分享