ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:226.85KB ,
资源ID:4311304      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4311304.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA课设巴克码.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA课设巴克码.docx

1、EDA课设巴克码课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 巴克码发生器 初始条件:Quartus,CPLD要求完成的主要任务:1、设计并实现一个巴克码(01110010代码)发生器。波形图见图1。图1 巴克码(01110010代码)发生器仿真波形图2、将所设计的整个系统写入CPLD 器件中,加上需要的外围电路在实验 箱上实现整个系统的硬件搭建,并调试出结果。时间安排:收集资料 第1天学习VHDL语言的基本知识 第2-3天学习巴克码的基本知识 第4-5天编写程序并调试出结果完成设计要求 第6-9天答辩 第10天指导教师签名: 年 月 日系主任(或责任教师)签名: 年

2、 月 日目 录摘要 IAbstract II绪论 11巴克码简介 31.1巴克码简介 31.2巴克码的产生与检测 31.2.1巴克码的产生 31.2.2巴克码的识别 42 Quarters 设计软件介绍 63 巴克码发生器的设计 73.1设计原理框图 73.2单元模块设计 73.2.1分频模块设计 73.2.2八位计数控制模块设计 83.2.3巴克码产生模块设计 83.2.4显示模块设计 93.3顶层电路设计 94仿真与调试 104.1软件仿真 104.2硬件调试 104.2.1硬件配置与初始化 104.2.2演示结果及分析 115小结即心得体会 12附录 14摘要 本文介绍了一种采用单片CP

3、LD 芯片进行巴克码发生器的设计方法,主要阐述如何使用新兴的EDA 器件取代传统的电子设计方法,利用CPLD 的可编程性,简洁而又多变的设计方法,缩短了研发周期。本设计实现了巴克码发生器的一些基本功能,主要包括八位巴克码序列产生,以及数码显示功能。本次设计主要包括采用了CPLD 芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。 巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列1。关键词:VHDL;巴克码;Quartus;CPLD;序列Ab

4、stractThis paper presents a monolithic CPLD chip Barker code generator design method focuses prima rily on how to use the emerging EDA electronic design device to replace the traditiona l methods, the use of programmable CPLD, concise yet varied design approach, shorten the development cycle. The Ba

5、rker code generator designed and implemented some of the basic features include eight Barker code sequence generation, and digital display. The design mainly include the use of a CPLD chip, using the VHDL programming language, to make it a more portability, more conducive to product upgrades.Barker

6、Code is mainly used in communication systems frame synchronization, which is characterized with a sharp auto-correlation function for the digital information and the random Differentiated, easily identifiable, theres the possibility of pseudo-synchronous small. Barker Code is a law of a special grou

7、p of binary code, it is a non-periodic sequence.Keywords: VHDL; Barker code; Quartus ; CPLD; sequence绪论人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是EDA 技术。没有EDA技术的支持,想要完成超大规模集成电路的设

8、计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA 技术提出新要求。EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。 可编程逻辑器件自20 世纪70 年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD、FPGA 属高密度可编程逻辑器件,目前集成度以高达200 万门/片,它将掩膜ASIC集成度高的优点和可编程逻辑器件设计生产方

9、便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC 实现,因此开发风险也大为降低。CPLD/FPGA 器件已成为现代高层次电子设计方法的实现载体。 VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3 种描述形式的混合描述,因此VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。另外,VHDL 还有以下优点:VHDL 的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调

10、试上,只需要花较少的精力用于物理实现;VHDL 可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL 的设计不依赖于特定的器件,方便了工艺的转换。VHDL 是一个标准语言,为众多的EDA 场上支持,因此移植性好。在通信系统中,同步技术起着相当重要的作用。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波,获得此相干载波的过程称为载波提取,或称为载波同步。而在数字通信中,消息是一串连续的信

11、号码元序列,解调时常须知道每个码元的起止时刻。因此,就要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。当通信是在两点之间进行时,完成了载波同步、位同步和帧同步之后,接收端不仅获得了相干载波,而且通信双方的时标关系也解决了,这时,接收端就能以较低的错

12、误概率恢复出数字信息。在数字通信系统中,实现帧同步的方法通常有两种:起止式同步法和集中式插入同步法。起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。另外在计算机RS232串口通信中通常也使用类似方法。而在集中式插入同步法中,要求插入的同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。同时接收机端的同步码识别器要尽量简单。目前用得比较广泛的是性能良好的巴克(Barker)码2。1巴克码简介1.1巴克码简介巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别

13、,易于识别,出现伪同步的可能性小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。一个n位的巴克码组为X1,X2,X3,Xn,其中Xn的取值是+1或l,其局部自相关函数为:目前已发现的所有巴克码组如表1.1:n巴 克 码 组2 3 4 ; 5 7 11 13 表1.1 已发现的巴克码组其中,“+”表示取值为高电平1,“”表示取值为低电平0。依要求及上面的巴克码组可知,8位的巴克码发生器应在输入时钟信号作用下依次产生“01110010”的码元序列。1.2巴克码的产生与检测1.2.1巴克码的产生 产生巴克码的方法常用移位寄存器,这里以七位巴克码产生其为例子介绍。产生器的示意图如图2.1所

14、示。图1.1 七位巴克码产生器 图1.1(a)是串行式产生器,移位寄存器的长度等于巴克码组的长度。七位巴克码由七级移位寄存器单元组成,各寄存器单元的初始状态由预置线预置成巴克码组相应的数字。七位巴克码的二进制数为lll00l0,移位寄存器的输出端反馈至输入端的第一级,因此,七位巴克码输出后,寄存器各单元均保持原预置状态。移位寄存器的级数等于巴克码的位数。 另一种是采用反馈式产生器,同样也可以产生七位巴克码,如图1.1(b)所示,这种方法也叫逻辑综合法,此结构节省部件。 但是在本次课程设计中,采用的时编程的方法用VHDL语言来实现的,相比起来更加方便灵活。1.2.2巴克码的识别 由于在本次课程设

15、计中,对巴克码的检测不作要求这里只做简单介绍。巴克码的识别仍以七位巴克码为例,用七级移位寄存器、相加器和判决器就可以组成一个巴克码识别器,如图1.2所示,各移位寄存器输出端的接法和巴克码的规律一致,即与巴克码产生器的预置状态相同。图1.2 巴克码判决器 当输入数据中的1进入移位寄存器时,输出电平为l,而0进入移位寄存器时,输出电平为l,识别器实际是对输入的巴克码进行相关运算。当七位巴克码已全部进入了七级移位寄存器时,七个移位寄存器输出端都输出+l,相加后得最大输出+7、若判决器的判决电平定为+6,那么,就在七位巴克码的最后一位“0”进入识别器后,识别器输出一个帧同步脉冲表示一帧数字信号的开头。

16、2 Quarters 设计软件介绍Quarters 是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计,是Altera公司的第4代可编程逻辑器件集成开发环境,提供了从设计输入到器件编程的全部功能,与Max+plus 相比,Quarters 设计软件增加了网络编辑功能,提升了调试能力,解决了潜在的设计延迟,同时其强大的设计能力和直观易用的接口,受到数字系统设计者的普遍欢迎。Quarters 开发系统具有以下主要特点:Quarters 可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为第三方EDA工具提供了方便的接口。Quarters 支持一个工作组

17、环境下的设计要求,包括支持基于Internet的协作设计,与Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA供应商的开发工具相兼容。Quarters 作为一种设计环境,除支持Altera的APEX 20KE,APEX 20KC,APEX,ARM的Excalibur嵌入式处理器方案,Mercury,FLEX10KE和ACEX1K之外,还支持MAX3000A和MAX7000系列乘积项器件。 Quarters 增加了一个新的快速适配编译选项,可缩短50%的编译时间。快速适配功能保留了最佳性能的设置,加快了编译过程,编译速度更快,

18、对设计性能的影响最小3。 图2.1 Quarters 设计软件界面3 巴克码发生器的设计3.1设计原理框图 根据层次化设计理论,巴克码发生器设计可由产生及显示先后分为分频模块、8位计数模块、序列产生模块、显示控制模块,其系统框图如图3.1 所示。 图3.1 系统框图3.2单元模块设计3.2.1分频模块设计分频模块将实验箱提供的20MHz 的时钟脉冲分为1Hz 的序列产生时钟脉冲。实际巴克码产生频率是远大于1Hz 的,设计中为了便于观察序列输出时的变化所以将产生频率设为1Hz。1HZ分频的源程序见附录的源程序一,对源程序编译后在file菜单下执行create symbol files for c

19、urrent file命令就可以生成的对应的模块元件,如图3.2所示。图3.2 1HZ分频模块3.2.2八位计数控制模块设计八位计数控制模块主要用于产生八位巴克码,和作为数码管显示的同步信号,其源程序见附录的源程序二。如上节所述,在编译后可生成模块元件,如图3.3所示。 图3.3 8位计数控制模块3.2.3巴克码产生模块设计此模块为发生器的核心模块,其产生串行输出的八位巴克码主要通过case-when语句来实现,其源程序见附录的源程序三,对其编译后,创建的模块元件如图3.4所示。创建波形文件对其进行功能仿真后的波形如图3.5所示。图3.4 巴克码产生模块图3.5 八位巴克码的仿真波形由图3.5

20、可知dout端的输出波形就是题目所要求的八位巴克码的连续波形。以每个时钟周期为单位可以读出产生的序列码正好是01110010,满足设计要求。3.2.4显示模块设计此模块主要用于巴克码的输出显示,便于观察和测试。显示模块分两个部分。一部分为巴克码输出接led灯,亮表示输出1、灭表示输出0。由于是串行输出,为了表示输出时第几位,另一部分输出接数码管,用来显示当前输出的位数。其源程序见附录源程序四,对其编译后,创建模块元件如图3.6所示。图3.6 显示驱动模块3.3顶层电路设计 在上面一节中已经分别设计并生成各个模块,在这一节中只需要建立顶层文件,然后用元件例化语句(见源程序五)将各个模块连接起来,

21、或者创建block diagram/schematic file直接添加上生成的模块在进行连线,就可以完成顶层文件的设计。这样整个设计就完成了。在tool单下的Netlist Viewers 可以生成顶层原理图,如图3.7所示。图3.7 顶层原理图4仿真与调试4.1软件仿真在上面的一章中我们已经完成了程序的设计,现在我们只需要创建 vector waveform file 再添加上输入输出引脚,再设置好输入时钟以及输入控制线就可以进行软件仿真了。仿真波形如下图4.1所示。 图4.1 总体仿真波形 从上面的仿真波形可以看出,segout(数码管段选输出端)每输出一个译码值就对应bkmout(巴克

22、码输出端)的一个输出值,当segout循环输出一组数值后就对应输出一组八位巴克码,从而起到了标志巴克码输出的作用。这里需要说明一下,由于仿真时间过长软件会计算很长时间。所以,在只需要观察程序实现的功能的前提下,修改了输入时钟的频率和分频器的输出频率。在硬件调试时再改过来就行了。4.2硬件调试4.2.1硬件配置与初始化 在上面已经得到了正确的功能波形,这是进行硬件调试的前提。在进行硬件调试之前我还要Assignments 菜单下的Device菜单中将未用到的引脚设置为输入三态。以免导致干扰信号的输入而影响调试结果。设置好后,就需要进行引脚配置了,引脚配置如图4.2所示。引脚配置是程序在实验箱上与

23、硬件联系的重要一步,也是实现软件与硬件结合的重要一步。引脚配置必须与试验箱上器件的实际连接相一致。引脚配置完毕就可以将程序下载到实验箱上,就可以观察演示结果了。图4.2 引脚配置图4.2.2演示结果及分析程序下载到实验后,就可以观察到数码管从07循环显示,同时led灯也随之亮灭显示。显示结果记录如下表4.1所示。数码管显示数值 0 1 23 4 5 6 7Led灯亮灭情况 灭 亮 亮 亮 灭 灭 亮 灭表4.1 演示结果记录有上面的记录结果可知,led灯的亮灭情况符合巴克码的输出情况。从而说明了此次课程设计成功的完成了题目所要求的任务。5小结即心得体会本次课程设计至此已经接近尾声,一周的时间虽

24、然很短暂,但在这一个星期的设计过程中收获颇多。设计的核心内容就是利用VHDL语言灵活的编写能力,以及CPLD工作速度快,集成度高,功耗低的特点完成八位巴克码的生成。整个设计过程中首先对所学的电子线路EDA有了更深的了解,比如元件模块的生成、顶层原理图的绘制等。而且我还对QUARTERS 软件的使用更加熟练,使其成为了自己在电子线路设计中不可或缺的工具。在写相关源程序的时候,我还收索了大量的网站,在网上收索了很多关于VHDL编程的相关资料。在这个过程中我发现网上有很多有用的知识。以后应该多注意,充分合理的利用网络,通过网络来学习东西。虽然我顺利完成了课程设计的要求,但是我感觉到我对VHDL语言的

25、理解还停留在比较浅的层次。要想真正掌握它还需要继续努力学习它。这次课程设计也使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。在以后的学习中应该多多的注意实践知识的训练和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。这次课程设计让我深深的明白了自己以后该做什么,该怎么去做。参考文献1朱明程,董尔令可编程逻辑器件原理与应用M西安电子科技大学出版社,20042沈保锁,侯椿萍现代通信原理M国防工业出版社,20023潘松,黄继业EDA技术与VHDL第二版清华大学出版社,20074刘玉晓EDA技术与VHDL电路开发应用实践

26、,20055汉泽西EDA 技术及其应用北京:北京航空航天大学出版社,20046谭会生EDA 技术基础长沙:湖南大学出版社,2004附录原程序一:(1HZ分频输出程序)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-*实体定义*ENTITY clk_1 IS PORT( clk : in std_logic;-时钟输入 clk_1 : out std_logic -1HZ输出 );END clk_1;ARCHITECTURE an OF c

27、lk_1 ISsignal cc :std_logic;begin-*分频到1HZ*process(clk) variable cnt : integer range 0 to 10000;-分频计数器 begin if clkevent and clk=1 then if cnt=10000 then cnt:=0; cc=not cc; else cnt:=cnt+1; end if; end if;end process;clk_1=cc;end an;源程序二:(八位计数控制程序)library ieee;use ieee.std_logic_1164.all;use ieee.std

28、_logic_arith.all;use ieee.std_logic_unsigned.all;entity CNT8 is port( clk :in std_logic; en,reset:in std_logic; cnt8 :out std_logic_vector(2 downto 0) );end entity ;architecture one of CNT8 is signal count8 : std_logic_vector(2 downto 0);beginprocess(clk,reset) begin if reset=1 then count8=000; elsif clkevent and clk=1 then if en=1 then count8=count8+1; end if; end if; end process;cnt8doutdoutdoutdoutdoutdoutdoutdoutdout=0; end case;end process;end one;源程序四(显示程序)library IEEE;use IEEE.STD_LOGIC_1164.ALL;us

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1