HDB3编码器的FPGA实现毕业设计说明书

上传人:沈*** 文档编号:78202993 上传时间:2022-04-21 格式:DOC 页数:69 大小:4.15MB
收藏 版权申诉 举报 下载
HDB3编码器的FPGA实现毕业设计说明书_第1页
第1页 / 共69页
HDB3编码器的FPGA实现毕业设计说明书_第2页
第2页 / 共69页
HDB3编码器的FPGA实现毕业设计说明书_第3页
第3页 / 共69页
资源描述:

《HDB3编码器的FPGA实现毕业设计说明书》由会员分享,可在线阅读,更多相关《HDB3编码器的FPGA实现毕业设计说明书(69页珍藏版)》请在装配图网上搜索。

1、内蒙古科技大学毕业说明书(毕业论文)内蒙古科技大学本科生毕业设计说明书(毕业论文)题 目:HDB3编码器的FPGA实现62 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使

2、用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年

3、 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日HDB3编码器的FPGA实现摘 要 数字基带信号的要求主要有两点,第一是对各代码的要求,期望将原始信息符号编制成适合于传输用的码型;第二是对所选的码型的波形的要求,期望波形适宜于在信道中传输。HDB3(三阶高密度双极性码)因

4、其具有无直流分量、较少低频分量和连零位数目最多不超过三个,以及便于提取定时信息和具有检错能力等特点,所以选择了 HDB3码 。本文介绍了HDB3 码的编解码原理,分析了HDB3 码较其它码型所具有的优势,结合可编程逻辑器件集成度高,速度快,功耗低的特点,选用Xilinx公司的Spartan-3 系列FPGA(Field Programmable Gate Array) 芯片Spartan-3E进行HDB3 编解码电路的实现。 通过仿真,观察到电路各点的仿真输出波形与HDB3 码的理论输出值一致。该方法可满足实际的通信系统传输要求,具有实际应用价值。关键词:数字基带信号;HDB3 ; FPGA

5、;HDB3 Encoder FPGA Implementation AbstractDigital baseband signals There are two main requirements, the first is the codes requirements, expectations will be compiled for the original information symbols used in the transmission pattern; the second is the selected waveform pattern requirements, expe

6、ctations waveform suitable for transmission in the channel. HDB3 (high density bipolar order code) because of its non-DC components, the low frequency components, and even fewer the number of zero up to more than three, and to facilitate extraction of timing information and error detection capabilit

7、y with features, so I chose HDB3 code. This article describes the HDB3 code decoding principle of the HDB3 code pattern than the other advantages of combining highly integrated programmable logic devices, high speed, low power consumption, selected Xilinxs Spartan-3 series FPGA(Field Programmable Ga

8、te Array) Spartan-3E chip for HDB3 codec circuit implementation. Through simulation, observation points in the simulation of the circuit output waveform and the theoretical output value HDB3 line code. The method can meet the practical requirements of communication systems transmit and has practical

9、 value.Keywords: Digital baseband signal; HDB3; FPGA;目 录摘 要IAbstractII第一章绪论11.1 可编程逻辑器件的发展11.1 .1 早期的可编程逻辑器件21.1.2 结构上稍为复杂的可编程芯片21.1.3 功能齐全、编程灵活的可编程逻辑器件21.2 可编程逻辑器件的应用前景21.2.1 PLD在ASIC上的应用21.2.2 在电子技术领域中的应用31.3 基带传输码41.3.1 传输码的码型选择原则41.3.2 几种常用的传输码型4第二章 HDB3编码原理82.1 插入V码过程92.2 插入B码过程102.3 单双极性变换过程.1

10、12.4 实例分析.12第三章 基于ISE的设计输入与行为级功能仿真123.1 Xilinx ISE 10.1 简介123.2 模块设计输入133.2.1 使用Project Navigator创建并管理工程133.2.2 HDL源代码设计输入133.2.3 测试激励生成器HDL Bencher的设置过程163.3 使用ECS设计顶层原理图203.3.1 新建顶层原理图“top”203.3.2 选择并放置器件符号203.3.3 添加连线213.3.4添加网线名称223.3.5设置I/O管脚233.3.6绘制总线243.4 测试激励与行为级功能仿真25第四章 基于ISE的综合与实现274.1 X

11、ilinx 内嵌的综合工具XST274.1.1 XST综述274.1.2 使用XST的综合流程274.1.3 综合后再进行仿真314.2 设计用户约束文件与实现结果分析324.2.1 使用Constraints Editor设计UCF文件324.3 布线后仿真39第五章 使用iMPACT配置FPGA/CPLD和下载配置文件415. 1 Spartan3-E FPGA 实验板说明415.1.1 Spartan3-E FPGA整体说明415.1.2 本设计所用配置说明425.2 使用iMPACT配置FPGA/CPLD425.3 使用iMPACT下载配置文件44总结49参考文献50附录51第一章 绪

12、论1.1 可编程逻辑器件的发展【1】【2】数字集成电路它由早期的电子管、晶体管、小中规模集成电路发展到超大规模集成电路以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导器厂商来独立承担。系统设计师们更愿意自己设计专用的ASIC(专用集成电路Application Specific Integrated Circuit)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际的应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(

13、CPLD)。随着FPGA芯片技术的发展和系统设计手段的不断进步,用硬件描述语言(HDL)进行数字通信功能模块或整个系统的设计,在仿真测试及电路实现等方面具有传统设计方法不可比拟的优越性。用FPGA实现的HDB3码编码器电路具有电路简单,性能可靠,开发成分低的优点。将编码器用于光纤以太网到E1信号相互转接通信设备中,再2048kb/s时钟速率下实际运行,其性能指标完全能够满足CCITT建议G.703标准。用FPGA实现的HDB3码编码器,可充分利用FPGA片内资源,是数据传输,编码解码及多路复用集中于单一芯片,有利于提高系统的经济性和可靠性,具有一定的应用价值。现场可编程逻辑门阵列FPGA它是在

14、PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。可以由电路设计者根据设计要求,借助于FPGA开发工具对其编程,以实现各种数字电路逻辑功能,确定逻辑功能的逻辑器件利用FPGA内部的逻辑结构,可以实现任何复杂的组合逻辑电路和时序电路,是实现数字电路的理想器件,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本的进一步降低,FPGA还将

15、进入更多的应用领域3。下面将具体介绍可编程逻辑器件的发展及其应用。可编程逻辑器件PLD是一种数字电路,它可以由用户来编程和进行配置,利用它可解决不同的逻辑设计问题。PLD有基本逻辑门电路、触发器以及内部链接电路构成,利用软件和硬件(编程器)可已对其进行编程,从而实现特定的逻辑功能。可编程逻辑器件自70年代初期以来经历了从PRO、NPL、APA、LGA、L到CPL和FPGA的发展过程,在结构、工艺、集成度、功能、速度和灵活性方面都有很大的改进和提高,其大致的演变过程主要有以下三个发展阶段:1.1 .1 早期的可编程逻辑器件:70年代初期的PLD主要用于解决各种类型的存储问题,如可编程只读存储器(

16、PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM),由于结构的限制,他们只能完成简单的数字逻辑功能。1.1.2 结构上稍为复杂的可编程芯片:70年代末到80年代初,AMD公司和Lattjce 公司先后推出了可编程逻辑器件PLD,产品主要为PLA(可编程阵列逻辑,Programmable Array Logic)、GAL(通用阵列逻辑,Generic Array Logic)和PLA(可编程逻辑阵列,Programmable Logic Array)。这一类PLD在设计上具有很强的灵活性,可以实现速度特性较好的逻辑功能,但由于结构简单,它们只能实现规模较小的电路

17、。1.1.3 功能齐全、编程灵活的可编程逻辑器件:80年代中期,Altera公司和X ilin公司同期推出了CPLD(复杂可编程逻辑器件 Complex Programmable Logic Dvice)和FPGA(现场可编程门阵列 Field Programmable Gates Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,可以实现见大规模的电路。 进入90年代后,可编程逻辑集成电路技术进入飞速发展的时期,除继续提高器件的集成度和速度等技术指标外,在系统可编程技术ISM(In-System Programmable)和世界扫描测试技术的出现,使得可编程逻辑器

18、件在器件编程技术和期间测试技术方面也获得了化时代的进步。1.2 可编程逻辑器件的应用前景【2-4】随着电子技术的高速发展,今天的CPLD和FPGA器件在集成度、功能和性能(速度及可靠性)方面已经能够满足大多数场合的使用要求。用CPLD、FPGA等大规模可编程逻辑器件取代传统的集成电路、接口电路和专用集成电路已成为技术发展的必然趋势。1.2.1 PLD在ASIC上的应用在ASIC设计方法中,通常采用全定制和半定制电路设计方法,设计完成后,如果不能满足要求,就得重新设计在进行验证。这样就使得设计开发周期变长,产品上市时间难以保证,大大增加了产品的开发费用。FPGA/CPLD芯片是特殊的ASIC芯片

19、,它们除具有ASIC的特点之外,还具有自身的优势。目前,ASIC的容量越来越大,密度已达到平均每平方英寸1百万个门电路。但随着密度的不断提高,芯片则受到引脚的限制,片上芯片虽然很多,但接入内核的引脚数目却是有限的。而选用FPGA/CPLD则不存在这样的限制,因为现在可达到金属层数目增强了产品的优势,FPGA/CPLD芯片的规模越来越大,其单片逻辑门数已达到上百万门,实现的功能也越来越强,同时可以实现系统集成。另外,与ASIC相比,可编程逻辑器件研制周期短,先期开发费用较低,也没有最少订购数量的限制,所有这一切简化了库存管理。随着每个门电路成本的降低和每个器件中门电路数量的增加,可编程逻辑器件正

20、在大举打入传统的门阵列领域,并已有少量的打入了标准单元ASIC的领域。1.2.2 在电子技术领域中的应用1、在微机系统中的应用 FPGA/CPLD可以取代现有的全部微机接口芯片,实现微机系统中的地址译码、总线控制、中断及DMA控制、DRAM管理和I /O接口电路等功能。利用CPLD和FPGA可以把多个微机系统的功能集成在同一块芯片中,即进行所谓的“功能集成”。2、在通信领域中的应用 现代通信系统的发展方向是功能更强、体积更小、速度更快、功耗更低。FPGA/CPLD在集成度、功能和速度上的优势正好满足通信系统的这些要求。所以现在无论是民用的移动电话、程控交换机、集群电台、广播发射机和调制解调器,

21、还是军用的雷达设备、图像处理设计、遥控遥测设备、加密通信机都已广泛地使用大规模可编程逻辑器件。3、在数字信号处理技术(DSP)领域中的应用DSP在很多领域内具有广泛的用途,如雷达、图像处理、数据压缩、数字电视和数字通信机等。随着DSP系统复杂程度和功能要求的提高,用DSP解决方案愈现出其缺陷性:实时性不强、灵活性太差,不适合在实验室或技术开发等场合使用等。现在,FPGA/CPLD为DSP提供了解决问题的方案,FPGA/CPLD和DSP的技术结合,能够在集成度、速度(实时性)和系统功能方面满足DSP的需要。应用FPGA/CPLD设计DSP系统可以减少系统体积,提高系统的工作速度。例如,用FPGA

22、可以将一块PC机长卡大小的图像处理板缩小到一块FPGA芯片和几片外围电路上。可编程逻辑器件是逻辑器件家族中发展最快的一类器件,可编程逻辑器件的出现使得其产品开发周期缩短、现场灵活性好、开发风险变小,随着工艺、技术及市场的不断发展,PLD产品的价格将越来越便宜、集成度越来越高、速度越来越快,再加上其设计开发采用符合国际标准的、功能强大的通用性EDA工具,可编程逻辑器件的应用前景将愈来愈广阔,FPGA/CPLD以其不可替代的地位,将越来越受到业内人士的关注。在数字通信系统中,为了满足无线信道中传输码型无直流分量、较少低频分量,以及便于提取定时信息和具有检错能力等要求,选择了三阶高密度双极性码(HD

23、B3)。结合可编程器件集成度高,速度快,功耗低的特点,选用ALTERA公司的Cyclone系列FPGA芯片EP1C3T100进行HDB3编码电路实现。通过仿真,观察到电路各点的仿真输出波形与HDB3码的理论输出一致,该方法可满足实际的通信系统传输要求,具有实际应用价值【5】。1.3 基带传输码【6】在实际的基带传输系统中,并不是所有的基带波形都适合在信道中传输。例如,含有丰富直流和低频分量的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为这有可能造成信号严重畸变。又如,当消息代码中包含长串的 “1”或“0”符号时,非归零波形呈现出连续的固定电平,因而无法获得定时信息。单极性归零码在传送

24、连“0”时,也存在同样的问题。因此,对传输用的基带信号主要有以下两个方面的要求。1、对代码的要求:原始消息代码必须编成适合于传输用的码型;2、对所选码型的电波形要求:电波形应适合于基带系统的传输。1.3.1 传输码的码型选择原则 传输码(或称线路码)的结构将取决于实际信道特性和系统工作的条件。在选择传输码时,一般应考虑以下原则:1、不含直流,且低频分量尽量少;2、应含有丰富的定时信息,以便于从接受码流中提取定时信号;3、功率谱主瓣宽度窄,以节省传输频带;4、不受信息源统计特性的影响,即能适应于信息源的变化;5、具有内在的检错能力,即码型应具有一定规律性,以便于用这一规律性进行宏观检测。6、编译

25、码简单,以降低通信延时和成本。1.3.2 几种常用的传输码型1、AMI码AMI码(Alternative Mark Inversion)码的全称是传号交替反转码,其编码规则是将消息码的“1”(传号)交替地变换为“+1”和“-1”,而“0”(空号)保持不变。AMI码的优点是,没有直流成分,且高、低频分量少,能量集中在频率为1/2码速处;编码电路简单,且可利用传号极性交替这一规律观察误码情况;如果它是AMI-RZ波形,接收后只要全波整流,就可变为单极性RZ波形,从中可以提取定时分量。鉴于上述优点,AMI码成为较常用的传输码型之一。AMI码的缺点是,当原信码出现长连“0”串时,信号的电平长时间不跳变

26、,造成提取定是信号的困难。解决连“0”码问题的有效方法之一是采用HDB3码。2、HDB3码HDB3码的全称是三阶高密度双极性码。它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。 HDB3码的编码虽然比较复杂,但译码却比较简单。除了具有AMI码的优点外,同时还将连“0”码限制在三个以内,使得接收时能保证定时信息的提取。因此,HDB3码是目前应用最为广泛的码型。A律PCM四次群以下的接口码型均为HDB3码。3、双相码 双相码又称曼彻斯特码。它用一个周期的正负对称方波表示“0”,而用其反相波形表示“1”。编码规则之一是:“0”码用“01”两位码表示,

27、“1”码用“10”两位码表示。双相码波形是一种双极性NRZ波形,只有极性相反的两个电平。它在每个码元间隔的中心点都存在电平的跳变,所以含有丰富的位定时信息,且没有直流分量,编码过程也简单。缺点是占有带宽加倍,使频带利用率降低。 双相码适用于数据终端设备近距离上传输,局域网常采用该码作为传输码型。4、 差分双相码为了解决双相码因极性反转而引起的译码错误,可以采用差分码的概念。双相码是利用每个码元持续时间中间的电平跳变进行同步和信码表示。而在差分双相码编码中,每个码元中间的电平跳变用于同步,而每个码元的开始处是否存在额外的跳变用来确定信码。有跳变则表示二进制“1”,无跳变则表示二进制“0”。该码在

28、局域网中常被采用。5、 密勒码密勒码又称延迟调制码,它是双相码的一种变形。它的编码规则如下:“1”码用码元中心点出现跃变来表示,即用“10”或“01”表示。“0”码有两种情况:单个“0”时,在码元持续时间内不出现电平跃变,且与相邻码元的边界处也不跃变,连“0”时,在两个“0”码的边界处出现电平跃变,“00”与“11”交替。又因为双相码的下降沿正好对应于密勒码的跃变沿。因此,用双相码的下降沿去触发双稳电路,即可输出密勒码,密勒码最初用于气象卫星和磁记录,现在也用于低速基带数传机中。6、 CMI码CMI码是传号反转码的简称,与双相码类似,它也是一种双极性二电平码。其编码规则是:“1”码交替用“11

29、”和“00”两位码表示;“0”码固定地用“01”表示。CMI码易于实现,含有丰富的定时信息。此外,由于10为禁用码组,不会出现三个以上的连码,这个规律可用来宏观检错。该码已被ITU-T推荐为PCMCIA四次群的接口码型,有时也用在速率低于8.448Mb/s的光缆传输系统中。7、块编码为了提高线路编码性能,需要某种冗余来确保码型的同步和检错能力。引入块编码可以在某种程度上达到这两个某的。块编码的形式有nBmB码, nBmT 码等。nBmB码是一类块编码,它把原信息码流的n位二进制码分为一组,并置换成m位二进制码的新码组,其中mn。由于mn,新码组可能有2n种组合,故多出(2n-2m)种组合。在2

30、n种组合中,以某种方式选择有利码组作为可用码组,其余作为禁用码组,以获得好的编码性能。在光纤通信系统中,常选择m=n+1,取1B2B码、2B3B码、3B4B码及5B6B码等。nBmB码提供了良好的同步和检错功能,但是也会为此付出一定的代价,即所需的带宽随之增加5。而在一般的数字通信系统中首先将消息变换为数字基带信号,称为信源编码6-8,经过调制后进行传输,在接收端解调后恢复出基带信号,在进行解码转换为原始消息。实际的基带传输系统中,并不是所有波均能在信道中传输。基带信号频谱中含有丰富的低频分量乃至支流分量,当数字信号进行长距离的增大而增大,电缆中线对之间的电磁辐射也随着频率的增高而加剧,从而限

31、制了信号的传输距离和传输质量。同时信道中存在的限直流电容和偶合变压器,阻止了直流分量的传输并对低频分量有较大的衰减。因此,对于一般信道高频和低频部分均是受限制的。这就出现了基带信号码型的选择问题。对于传输信道,要求线路传输码型的频谱不含支流分量,并且只有很少的低频分量和高频分量。其次,一般的传输系统中,为了节省频带是不传输定时信息的。必须在接受端从相应的基带信息中加以提取,因而传输码型应利于收端定时时钟的提取,满足接受端再生原始信息时的需要。再次,码型应具有一定的规律性,有一定的误码检测能力。因此,我们选择了用三阶高密度双极性码HDB3码。它是AMI码的一种改进型,主要是克服了AMI码中连“0

32、”时所带来的提取定时信息的困难,保持了AMI码的优点,因而获得广泛应用,已成为CCITT推荐使用的码型之一。此外,常用的NRZ码不适合在高速长距离数据通信的信道中传输,因而选用了HDB3码。HDB3码是串行数据传输的一种重要编码方式。和常用的NRZ码相比,HDB3具有很多优点,例如:消除了NRZ码的直流成分,具有时钟恢复和更好的抗干扰性能,这使得它更适合于长距离信道传输。E1信号选用HDB3编码方式,速率2.048Mbps可以在特性阻抗120奥姆的RJ45平衡双绞线上传输1.5km,能够满足大多数情况下数据的高速长距离传输。在数据速率小于2.048Mbps的高速速率时,可以通过插入额外数据比特

33、提高数据速率【9】。第二章 HDB3编码原理要设计一个实用的编码模块,首先要深入研究其编码规则及其特点,然后根据编码规则设计符合电路特性的编码流程。HDB3码的编码规则包括【6】.【10-11】:将消息代码变换成AMI码,AMI码的编码规则是对码流中的非“0”符号进行正负交替;检查AMI码中的连零情况,当连零的个数小于4个时,保持AMI的形式不变;当连零的个数达到4个或超过4个时,则将非零码后的第4个“0”替换成V码,其中V码的极性与前一非零码(+1或-1)的极性保持一致,例如,前面的非零码是+1,则将V码记为+V;完成插V操作后,检查2个相邻V码之间非零码的个数是否为偶数,若为偶数,则再将相

34、邻2个V码中后一个V码的前一个非零码后的第一个“0”变为B码,B码的极性与前一非“0”码的极性相反,同时B码后面的非“0”码极性再次进行交替变换,保证极性交替反转特性。编码规则中出现的V码、B码只是作为标识符,最终的电路实现还是“0”和“1”这两种逻辑电平,因此需要采用二进制编码对“1”、“0”、V、B进行编码,“00”表示“0”,“01”表示“1”,“10”表示B,“11”表示V。根据编码规则和利用FPGA实现的特点,编码过程为:首先插入V码,然后插入B码,最后是单双极性变换。但是如果按照编码规则的顺序设计应该首先进行单双极性变换,再完成插V和插B,在此过程中还需根据编码规则变换当前B码之后

35、的非零码的极性,这就需要大量的寄存器来保存当前数据的状态,导致电路非常复杂,占用大量的FPGA内部逻辑单元,实现难度大,且成本高。因此不用这种设计方法。HDB3编码过程示意图如图2.1所示。 图2.1 HDB3编码过程示意图2.1 插入V码过程 插入V码过程是对消息代码里的连零串进行检测,一旦出现4个连零串的时候,就把第4个“O”替换成破坏符V,其他情况下消息代码原样输出。输入的代码经插V操作后全部转换成双相码,即“0”变换成“00”,“1”变换成“01”,V变换成“ll”。图2.2是插入V码过程的流程,代码输入到插V模块后,如果输入是“l”,则输出为“01”,同时计数器清零;如果输入是“O”

36、则对输入“O”的个数进行计数,当计数器计数到第4个“O”时,输出“11”作为V码,同时计数器要清零用于下一轮检测;计数器未满4个“0”,则输出“00”。 图2.2 插入“V”码过程流图2.2 插入B码过程 当相邻两个V码之间有偶数个非“0”码时则把后一个V码之前的第1个非“0”码后面的“0”码变换成B码。该模块设计的难点在于插入B码的过程中涉及一个由现在事件的状态控制过去事件状态的问题,按照实时信号处理的理论,这是无法实现的,这里使用两组4位移位寄存器。采用4位移位寄存器是根据HDB3编码规则的特点确定,经插V后,连零串中的第4个“0”变成V码,代码中连零个数最多是3个,而插入B码操作是把在后

37、一个V码之前的第1个非零码之后的“O”变换成B码,这个长度不超过3个“0”,因此只需4位寄存器就可通过判断现在的输入状态来决定是否应插入B码。图2.3是判断是否插入B码的流程2组4位移位寄存器在时钟的作用下逐位将数据移出,在移位的同时还需对寄存器的最低位进行操作,即判断是否需插入B码。这部分功能的实现需设置一个检测当前V码状态的标志位firstv。 图2.3 判决是否插入“B”码流程图2.3 单双极性变换过程 分析HDB3码的编码规则,发现V码的极性是正负交替的,余下的“1”和B码的极性也是正负交替的,且V码的极性与V码之前的非零码极性一致。因此可以将所有的“1”和B码取出来做正负交替变换,而

38、V码的极性则根据“V码的极性与V码之前的非零码极性一致”这一特点进行正负交替变换。具体操作是设置一个标志位flag,通过检测判断标志位的状态来确定是否进行单双极性变换,标志位要交替变换以实现“l”和“B”正负交替,V码的极性也根据标志位变换。图2.4是单双极性变换过程的流程,“10”表示输出正电平,“Ol”表示输出负电平,“00”表示输出为零电平。 图2.4 单双极性变换示意图2.4 实例分析 下面通过一串实际的消息代码来说明这个编码过程。在插V变换过程和插B变换过程中用“01”表示“1”码,用“00”表示“0”码,用“11”表示V码,用“10”表示B码。在单双极性变换中用“01”表示“-1”

39、电平,用“10”表示“+1”电平,用“00”表示“0”电平。在插V和插B以及单双极性变换过程中都是通过并行输出表示的,插V输出表示为dataout0、dataout1。插B输出表示为dataout20、dataout21。单双极性变换输出表示为dataout30、dataout31。1、消息码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 2、插V变换:01 00 00 00 11 01 00 00 00 11 01 01 00 00 00 11 00 00 00 11 01 3、插B变换:01 00 00 00 11 01 00 00 00 11 01

40、01 10 00 00 11 10 00 00 11 01 4、单双极性变换:10 00 00 00 10 01 00 00 00 01 10 01 10 00 00 10 01 00 00 01 10第三章 基于ISE的设计输入与行为级功能仿真3.1 Xilinx ISE 10.1 简介【12】 Xilinx 作为当今世界上最大的FPGA/CPLD生产商之一,长期以来一直推动着FPGA/CPLD技术的发展。其开发的软件也不断升级换代,由早期的Foundation系列逐步发展到目前的ISE 10.x系列。ISE是集成综合环境的简称,它是Xilinx FPGA/CPLD的综合性集成设计平台,该平

41、台集成了从设计输入、仿真、逻辑综合、布局布线与实现、时序分析、芯片下载与配置、功率分析等几乎所有设计流程所需工具。 2008年3月,Xilinx宣布推出了其ISE Design Suite 10.1版,此版本极大加快了设计实现速度,运行速度平均加快两倍!新版本ISE的一个重要特性是首次采用了SmartXplorer技术。这一技术专门为解决设计人员所面临的时序收敛和生产力这两大艰巨挑战而开发。它不同于以前的版本,首先是ISE 10.1把所有的的工具套件给它统一集成一体;第二是进行了工具的统一,它给大家提供包括逻辑、嵌入式和DSP统一的设计环境。ISE的主要特点如下:1、ISE是一个集成环境,可以

42、完成整个FPGA/CPLD开发过程。ISE集成了很多著名的FPGA/CPLD设计工具,根据设计流程合理应用这些工具,会使工程师的设计工作如鱼得水。2、ISE界面风格简洁流畅,易学易用。ISE的界面秉承了可视化编程技术,界面根据设计流程而组织,整个设计过程只需按照界面组织结构依次点击相应的按钮或选择相应的选项即可。3、ISE丰富的在线帮助信息,结合Xilinx的技术支持网站,一般设计过程中可能遇到的问题都能得到很好的解决。4、强大的设计辅助功能。ISE秉承了Xillnx设计软件的强大辅助功能。在编写代码时可以使用编写向导生成文件头或模块框架,也可以使用语言模板(Language Template

43、s)帮助编写代码。在图形输入时可以使用ECS的辅助项帮助设计原理图。另外,ISE的Core Generator和LogiBLOX工具可以方便地生成IP Core(IP 核)与高效模块为用户所用,大大减少了设计者的工作量,提高了设计效率与质量。3.2 模块设计输入【13-15】【18】3.2.1 使用Project Navigator创建并管理工程 双击桌面上ISE Project Navigator的快捷图标启动ISE。首先创建一个工程目录,目录名称为“Xilinx”。启动ISE工程管理器,每次启动Project Navigator时都会默认回复到最近使用过的工程界面,由于此时没有前面的工程记

44、录,所以出现了空白工程界面,选择【File】/【New Project】选项,弹出新建工程对话框,在工程名中输入“HDB3”作为工程名。在工程路径中单击按钮,将工程指定到目录“Xilinx”。3.2.2 HDL源代码设计输入【16-17】 本次设计使用的是源代码输入,主要分为:新建HDL源代码资源;设计源代码辅助模板;利用语言模板辅助设计源代码;源代码检错等步骤。1、新建HDL源代码资源。单击新建资源快捷,会弹出新建资源对话框。选择新建资源类型为源代码模块“Verilog Module”,新建文件名为“c_vhdb3”,并直接添加到工程中去,如图3.1图3.1 新建源代码模块资源2、设计源代码

45、辅助模板(1) 单击按钮,进入源代码设计模块,按图3.2所示编辑输入、输出信号名称与总线。 图3.2 编辑模块的输入、输出信号属性(2) 单击按钮,单击按钮确认新建源代码模块。Project Navigator自动调用HDL编辑器,并根据源代码辅助模块信息,生成程序头。在HDL编辑器中编写代码,单击按钮。结果如图3.3所示。 图3.3 源代码的输入3、源代码检错 在Project Navigator资源管理窗选择源代码资源,展开当前资源操作窗项目,双击“Check Syntax”命令对源代码进行检错。如图3.4所示。图3.4 源代码检错4、功能仿真功能仿真也被称为前仿真,它的主要目的是验证设计

46、的逻辑功能是否正确,功能仿真不包含任何门延迟和路径延迟信息,是独立于器件信息之外的仿真。对此HDL源代码进行前仿真是需要一个测试激励(将在3.2.3节中会详细讲到),输入一个测试激励后,在Project Navigator资源管理窗选择测试激励,双击“Simulator Behavioral Model”,如图3.5、3.6所示。图3.5 功能仿真图3.6 功能仿真结果5、生成符号仿真后cvhdb3(插入V码模块)没有语法错误,并且行为仿真结果正确。接着展开当前资源操作窗的“Design Utilities”项目,双击“Create Schematic Symbol”生成器符号。如图3.7所示

47、。 图3.7 生成符号用上述同样的方法进行cbhdb3(插入B码模块)、d_chdb3(单双极性变换模块)、fenpin(分频模块)、test1(激励源模块)四个模块的编写并且生成模块器件符号,方便顶层模块的设计。3.2.3 测试激励生成器HDL Bencher的设置过程。(1) 启动工程后,在资源管理窗单击鼠标右键,在弹出的菜单中选择【New Source】命令,弹出新建资源对话框,选择新建类型为“Test Bench Waveform”,键入测试激励文件名,如图3.8所示。 图3.8 新建测试激励波形资源(2) 单击按钮,选择需要仿真的模块,新建测试激励波形文件将与该模块关联。如图3.8所

48、示。 图3.8 选择被测模块(3) 单击按钮,进入新建资源信息对话框,如图3.9所示。单击按钮确认新建资源信息,启动HDL Bencher。图3.9 新建资源对话框(4) 首先遇到的是初始时间设置对话框。这个对话框主要完成时钟周期、设计类型、全局信号等的设置。时钟周期需要设置的参数有:触发沿(上升沿触发、下降沿触发、两个沿都触发),时钟高、低电平保持时间,输入建立时间,输出有效时间,时钟偏移等。设计类型分为3类:单时钟同步时序电路、多时钟同步时序电路和组合电路等类型。全局信号设置主要选择是否使用GSR(FPGA),PRLD(CPLD)等全局置位、复位信号。另外还可以设置仿真所用的时间单位(ms

49、,ns,ps)等项目,如图3.10所示为此设计的测试激励波形设置对话框。 图3.10 时间设置窗(1) 如果整个设计都是同步时序设计,那么单击按钮,完成时间设置,进入HDL Bencher测试波形编辑窗口。如果设计不完全是同步时序设计,就需要设置异步时序关系,本设计中采用的是同步时序。(2) 测试激励波形编辑窗简单明了,如图3.11所示,由菜单栏、工具栏、信号列表、端口属性和信号波形编辑区等项目组成。菜单栏由一系列通用操作命令下拉菜单组成。工具栏包含了HDL Bencher中常用命令的快捷按钮。信号列表罗列了所有仿真信号,端口属性用图标区分了时钟、输入、输出信号。信号波形编辑区是HDL Ben

50、cher的主体,完成激励信号的波形编辑。测试激励信号波形的编辑采用手动方法。 图3.11 测试激励波形编辑窗(3) 完成激励信号波形输入后单击工具栏中的按钮,保存设计。(4) 完成测试激励波形的编辑后,关闭HDL Bencher退出测试激励编辑器,会发现在Project Navigator的资源管理窗中新建了一个测试激励波形资源,如图3.12所示,双击测试激励波形资源,可以启动HDL Bencher修改测试激励波形。 图3.12 新建的测试激励波形资源(5) 选择测试激励波形资源,发现当前资源操作窗中对该资源的操作是仿真。先进行的是前行为仿真,具体选项如图3.13所示。 图3.13 使用测试激

51、励波形启动仿真(6) 右键“Simulate Behavioral Model”,选择“Rerun All”,对设计进行仿真。3.3 使用ECS设计顶层原理图3.3.1 新建顶层原理图“top”单击新建资源按钮,弹出新建资源对话框,选择新建资源类型为原理图(Schematic)类型,新建文件名为“top”,并且直接添加到工程中去。单击按钮,单击按钮确认新建资源信息,启动ECS。如图3.14所示。 图3.14 新建顶层原理图3.3.2 选择并放置器件符号 参看图3.15所示的顶层原理图,在顶层原理图中除了需要放置标准的“BUF”等标准器件符号,还需要放置用户生成的“fengping”、“test

52、1”、“cvhdb3”、“cbhdb3”、“d_chdb3”等器件符号,放置用户器件符号的方法和放置标准器件符号完全一致,仅仅是在选择器件符号分类显示目录时选择当前工程路径即可。 图3.15 选择并放置用户自建器件符号3.3.3 添加连线1、单击绘图工具栏中的按钮,选择智能连线方式,当鼠标指针移动到原理图可画线区域时,鼠标自动变为“+”形状,如图3.16所示。点击始点管脚两次(第1次选择器件,第2次开始连线),然后点击连线终点管脚,智能连线器自动在起始与终点管脚之间布置一条连线。此外,还有另一种连线方法,不用直接将所需连接的管脚直接相连,在后面的管脚命名时需要连接在一起的管脚命名相同,这样就可

53、以将管脚相连,这种方法在视觉上看起来比较清楚,特别是对较大的工程而言比较适用,在本设计中就采用了这种方法。如图3.17所示。图3.16 添加连线1图3.17 添加连线2(2)按Esc键或者双击鼠标右键结束操作。3.3.4添加网线名称添加网线名称有两个途径:一是增强了原理图的可读性,在综合与实现时也易于查看某条网线的延时与布线情况;另外,ECS如大多数原理图编辑工具一样,默认同名网线就是一条线。换句话说,如果两条网线名称相同,即使在原理图上没有明确连线,ECS也认为它们是同一条网线,有了连接关系。1、单击绘图工具栏中的按钮,选择网线分支命名(Name the Branch),在网线名称栏填写“c

54、lk”作为“test1”的时钟信号输入管脚名称,当鼠标指针移动到原理图中时,发现鼠标指针处已有了“clk”网线名称。在“test1”的“clk”引线末端单击鼠标左键,为该网线添加名称。如果单击网线名称栏旁边的按钮,网线名称序号自动加1或者减1. 2、按同样的方法为其他网线添加名称。如图3.18所示。 图3.18网线添加名称3、按Esc键或者双击鼠标右键结束操作。3.3.5设置I/O管脚 1、为已经命名的网线设置I/O端口管脚比较简便,单击绘图工具栏中的按钮,选择“添加输入管脚(Add an input marker)”如图3.19所示。然后在原理图需要添加I/O管脚的网线端口,按住鼠标左键拖出

55、一个框,放开鼠标左键,自动产生一个与网线同名的输出端口。 图3.19 设置输入管脚 2、在设置选项卡选择添加输出管脚(Add an output marker),与添加输入管脚的方法相同,添加输出管脚。 3、按Esc键或者双击鼠标右键结束操作,结果如图3.20所示。 图3.20 添加I/O管脚3.3.6绘制总线 ECS中并没有专用的总线绘制命令,绘制总线时仍然采用绘制连线命令【Add Wire】,仅仅利用网线命名区分总线与普通连线。总线的名称命名格式为BusName(X:Y),其中BusName是总线名称,“()”为总线表示符号,X为MSB,Y为LSB。运用步骤3.3.13.3.6的操作方法,

56、完成其余各部分设计,单击按钮保存设计。 原理图绘制完成后,还必须检查错误。单击绘图工具栏中的按钮,ECS自动检查当前原理图。如果原理图完全正确,则在检错对话框中显示“No errors detected”信息。如果原理图有错,检错对话框内将罗列所有错误。3.4 测试激励与行为级功能仿真 ISE中集成的仿真工具主要是HDL Bencher测试激励生成器,它将VHDL、Verilog源代码、ECS原理图等设计输入导入其测试环境,根据用户在图形界面下编辑的测试波形,直接生成测试激励文件,然后进行仿真验证。具体方法在上面已经讲过。不再细说。下面各图是各个功能模块的行为级仿真波形:cvhdb3模块是插入

57、V码过程,对消息代码里的连零串进行检测,一旦出现4个连零串的时候,就把第4个“O”替换成破坏符V,其他情况下消息代码原样输出。插入的代码经插V操作后全部转换成双相码,即“0”变换成“00”,“1”变换成“01”,V变换成“11”,如图3-21所示。cbhdb3模块是在插入V码的基础上,当相邻两个V码之间有偶数个非“0”码时则把后一个V码之前的第1个非“0”码后面的“0”码变换成B码。B码用“10”代替。如图3-22所示。d_chdb3是单双极性变换模块,由于硬件只能识别正电平和零电平,对负电平没法表示,其中就用“10”表示输出正电平,“01”表示输出负电平,“00”表示输出为零电平。由HDB3

58、码的编码规则发现V码的极性是正负交替的,余下的“1”和B码的极性也是正负交替的,且V码的极性与V码之前的非零码极性一致。而V码的极性与V码之前的非零码极性一致,根据这种规则最终完成HDB3的编码过程。如图3-23所示。 图3.21 cvhdb3模块的功能仿真波形 图3.22 cbhdb3模块的功能仿真波形 图3.23 d_chdb3模块的功能仿真波形第四章 基于ISE的综合与实现4.1 Xilinx 内嵌的综合工具XST4.1.1 XST综述 XST(Xilinx Synthesis Technology)是Xilinx ISE 内嵌的综合工具。虽然XST与Synplify Pro等业界流行的

59、综合工具相比特点并不突出,功能也不全面,但是Xilinx 对自己的FPGA/CPLD 内部结构最为了解,所以XST对Xilinx器件的支持也最为直接,更重要的是XST内嵌在ISE中,安装后可以直接使用。所以使用XST综合往往会得到比较满意的结果。综合对应了图4.1中的SynthesizeXST项,其包含了3个子项,意义分别为:查看综合报告、查看综合器件的RTL级原理图和检查语法。 图4.1 综合选项 XST的输入文件一般是HDL源文件,在ISE高级版本中,XST已经支持Verilog和VHDL混合语言源代码输入:XST的输出文件是NGC网表,XST的报告文件是Log文件。ISE中XST设计流程

60、的综合阶段约束文件与实现阶段约束文件的概念并不分明,综合阶段的约束条件常常通过实现阶段的约束文件来完成。4.1.2 使用XST的综合流程1、创建一个工程,根据源代码类型设置工程属性为XST Verilog或XST VHDL设计流程,本设计为XST Verilog,器件选择为相应的FPGA器件。如图4.2所示。图4.2 选择XST设计流程2、在工程资源窗(Sources in Project)选中顶层文件,然后在当前资源操作窗(Processes for Current Source)选中综合步骤(Synthesize),右键选中“Properties”,编辑操作步骤属性。XST综合属性的设置包

61、括综合参数设置,HDL源代码参数设置,Xilinx专用参数设置,本设计的参数设置按照图4.3图4.5所示分别进行设置。图4.3 设置XST综合参数 图4.4 设置XST HDL源代码参数图4.5 设置XST Xilinx专用参数3、单击按钮保存综合参数设置。在工程资源窗选中顶层文件,然后在当前资源操作窗选中综合步骤,单击运行按钮,运行综合。4、完成XST综合后,展开当前资源操作窗的综合步骤,双击“View Synthesis Report”图标观察综合报告。双击“View RTL Schematic”图标观察寄存器传输级原理图,分析综合结果,如图4.6所示。图4.6 综合步骤完成后,分析综合结果5、双击“View RTL Schematic”图标,ISE自动调用原理图编辑器ECS来打开综合产生的寄存器传输级视图,如图4.7所示。图4.7 XST综合产生的寄存器传输级视图模块符号6、双击模块符号,观察模块内部逻辑结构,如图4.8

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!