




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学EDA 课程设计说明书课程设计任务书课程设计任务书学生姓名:学生姓名: 专业班级:专业班级:电子科学与技术 0803 班指导教师:指导教师: 工作单位:工作单位: 信息工程学院 题题 目目: 巴克码检测器课题要求:课题要求: (1)学会在 Quartus环境中运用 VHDL 语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。 (2)掌握巴克码检测器的主要功能与在 CPLD 中的实现方法。 课题内容:课题内容:(1)设计一个七位巴克码(X1110010)代码检测器,当识别到一组代码时,输出一个高电平脉冲。 (2)运用 Quartus软件中的仿真功能对所
2、设计的巴克码检测器的各个模块及顶层电路的功能进行仿真分析。时间安排:时间安排:学习 VHDL 语言的概况 第 1 天学习 VHDL 语言的基本知识 第 2、3 天学习 VHDL 语言的应用环境,调试命令 第 4、5 天课程设计 第 6-9 天答辩 第 10 天 指导教师签名:指导教师签名: 年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日武汉理工大学EDA 课程设计说明书目录摘要.IABSTRACT.II1 绪论 .12 巴克码简介.23 QUARTERS 设计软件介绍.33.1 VHDL 发展史及特点.33.2 QUARTERS 应用.44 方案选择及论
3、证 .65 设计原理.75.1 巴克码发生器 .75.2 巴克码检测器 .96 编译与仿真.136.1 程序编译 .136.2 实验仿真 .187 小结.20参考文献:.21武汉理工大学EDA 课程设计说明书摘要本课程设计主要是利用QUARTERS设计一个七位巴克码(X1110010)代码检测器,当识别到一组代码时,输出一个高电平脉冲。巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。关键词:QUARTERS,巴克码,信号检测器,序列武汉理工大学EDA 课程设计说
4、明书AbstractThis course is designed using QUARTERS design a seven buck code (X1110010) code detector, when to recognize a set of code, and the output pulse a high level.Buck code is mainly used for communication system of frame synchronization, characterized by a sharp autocorrelation, facilitate and
5、random digital information to distinguish, easy to identify, appear the possibility of pseudo synchronous small. Buck code is one kind has the special law of binary code group, it is a non-periodic sequence.Keywords: QUARTERS , buck yards, signal tester, sequence武汉理工大学EDA 课程设计说明书01 绪论在通信系统中,同步技术起着相当
6、重要的作用。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波,获得此相干载波的过程称为载波提取,或称为载波同步。而在数字通信中,消息是一串连续的信号码元序列,解调时常须知道每个码元的起止时刻。因此,就要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。数字通信中的消息数字流总是用若干码元组成一个 “字”,又用若干 “字”组成
7、一“句”。因此,在接收这些数字流时,同样也必须知道这些 “字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。当通信是在两点之间进行时,完成了载波同步、位同步和帧同步之后,接收端不仅获得了相干载波,而且通信双方的时标关系也解决了,这时,接收端就能以较低的错误概率恢复出数字信息。在数字通信系统中,实现帧同步的方法通常有两种:起止式同步法和集中式插入同步法。起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。另外在计算机 RS232 串口通信中通常也使用类似方法。而在集中式插入同步法中,要求插入的
8、同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。同时接收机端的同步码识别器要尽量简单。目前用得比较广泛的是性能良好的巴克 (Barker)码。武汉理工大学EDA 课程设计说明书12 巴克码简介巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。一个 n位的巴克码组为 , :, ,. ,其中 的取值是+1 或一1,其局部自相关函数为:目前已发现的所有巴克码组如表 1: 表1 已发现的巴克码组其中,“+”表示取值为高电
9、平1,“一”表示取值为低电平0。依要求及上面的巴克码组可知,8 位的巴克码发生器应在输入时钟信号作用下依次产生“01110010”的码元序列。武汉理工大学EDA 课程设计说明书23 Quarters 设计软件介绍3.1 VHDL 发展史及特点VHDL 诞生于 1982 年。随后各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即
10、IEEE 标准的 1076-1993 版本, (简称 93 版) 。现在,VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。 VHDL 的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用
11、在 FPGA/CPLD/EPLD 的设计中。当然在一些实力较为雄厚的单位,它也被用来设计 ASIC。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 VHDL 语言特点(1)VHDL 语言功能强大、设计灵活。VHDL 具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL 支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL 还支持各种设计方法,既支持自底向上的设计,又
12、支持自顶向下的设计;既支持模块化设计,又支持层次化设计。(2)支持广泛、易于修改。由于 VHDL 已经成为 IEEE 标准所规范的硬件描述语言,目前大多数 EDA 工具几乎都支持 VHDL,这为 VHDL 的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用 VHDL 编写的源代码,因为 VHDL 易读和结构化,所以易于修改设计。(3)强大的系统硬件描述能力。VHDL 具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL 支持惯性延迟和传输延迟,还可以准确地建
13、立硬件电路模型。VHDL 支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。(4)独立于器件的设计、与工艺无关。设计人员用 VHDL 进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以武汉理工大学EDA 课程设计说明书3用多种不同的器件结构来实现其功能。(5)很强的移植能力。VHDL 是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。(6)易于共享和复用。VHDL 采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设
14、计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。(7)VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(8)VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。对于用 VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。(9)VHDL 对设计
15、的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。总之,由于 VHDL 语言有这么多优点和特点,因此它被广泛的应用在电路系统的设计和器件的设计仿真中。3.2 Quarters 应用Quarters 是 Altera 公司推出的新一代开发软件,适合于大规模逻辑电路设计,是Altera 公司的第 4 代可编程逻辑器件集成开发环境,提供了从设计输入到器件编程的全部功能,与 Max+plus 相比,Quarters 设计软件增加了网络编辑功能,提升了调试能力,解决了潜在的设计延迟,同时其强大的设计能力和直观易用的接口,受到数字系统设计者的普遍欢迎
16、。Quarters 开发系统具有以下主要特点:Quarters 可以产生并识别 EDIF 网表文件、VHDL 网表文件和 Verilog HDL 网表文件,为第三方 EDA 工具提供了方便的接口。Quarters 支持一个工作组环境下的设计要求,包括支持基于Internet的协作设计,与Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA供应商的开发工具相兼容。Quarters 作为一种设计环境,除支持 Altera 的 APEX 20KE,APEX 20KC,APEX,ARM 的 Excalibur 嵌入式处理器方案,Mer
17、cury,FLEX10KE 和 ACEX1K之外,还支持 MAX3000A 和 MAX7000 系列乘积项器件。武汉理工大学EDA 课程设计说明书4 Quarters 增加了一个新的快速适配编译选项,可缩短 50%的编译时间。快速适配功能保留了最佳性能的设置,加快了编译过程,编译速度更快,对设计性能的影响最小3境,或宣布自己的设计工具可以和 VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。Quarters 设计软件界面如图 3.1所示。图3.1 Quarters 设计软件界面武汉理工大学EDA 课程设计说明书54 方案选择及论证方案一:在
18、状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。同时,状态机的设计方法也是数字系统中一种常用的设计方法,其输出仅仅是当前状态值的函数,并且在时钟上升沿到来时才发生变化。米立机的输出则是当前状态值、当前输出值和当前输入值的函数。本实验要从一串二进制码中检测出一个已预置的 7 位二进制码,每增加一位二进制相当于增加一个状态,用 7 个状态可以实现。方案二:利用移位寄存器实现序列检测:上面检测的原理是:逐位检测,的那个检测到信号时则转入下一个状态。这种检测的原理清晰,但缺点是当检测到序列比较长时就非常麻烦,而且检测的灵活性差。利用移位寄存器
19、能实现简便快速,可移植的序列检测器。通过比较可以看出方案一比较容易实现,因此本次课程设计我选择的是方案一。 武汉理工大学EDA 课程设计说明书65 设计原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。在本次设计中首先要设计一个巴克码发生器,然后再设计巴克码检测器。5.
20、1 巴克码发生器发生器原理:N 位触发器构成的计数器可产生 M 个代码。原理图:图 5.1 巴克码发生器原理图当计数脉冲不断进入由 Q3Q2Q1 组成的三位二进制异步计数器时,3-8 译码器的 8 个输出经反相器后顺序输出高电平。其中五路信号经“或非”后再和其中武汉理工大学EDA 课程设计说明书73 路“或” ,在 Y 端便可顺序产生 11000100 代码序列。代码序列发生:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bak1 isport(clk,reset: in std_
21、logic;dout:out std_logic);end bak1;architecture a of bak1 issignal count :std_logic_vector(2 downto 0);signal tmp1:std_logic;begindout=tmp1;process(clk,reset)beginif reset=0 thencount0);elsif rising_edge(clk) thencounttmp1tmp1tmp1tmp1tmp1tmp1tmp1tmp1tmp1=0;end case;end if;end process;end a;5.2 巴克码检测
22、器序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。 图 5.2 巴克码检测器状态图用状态机设计的巴克码检测器总设计程序如下所示:library ieee; 序列检测器(1110010)S1S2S8S3S4S7S6S51110010/100110101武汉理工大学EDA 课
23、程设计说明书9use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity create is port( CLR : in std_logic; CLK_1S : in std_logic; SIG_OUT : out std_logic; CODE : in std_logic_vector(6 downto 0) );end entity;architecture behave of create istype states is(st0,st1,st2,st
24、3,st4,st5,st6,st7);signal current_state : states;begin process(CLK_1S,CLR,CODE) begin if CLR = 0 then current_state = st0; SIG_OUT SIG_OUT = CODE(0); current_state SIG_OUT = CODE(1); current_state SIG_OUT = CODE(2); current_state SIG_OUT = CODE(3); current_state SIG_OUT = CODE(4); current_state SIG_
25、OUT = CODE(5); current_state SIG_OUT = CODE(6); current_state SIG_OUT = 0; current_state current_state = st0; end case; end if; end process;end behave;本次课程设计所用的频率是由实验箱 pin16 提供 20M 的频率,但我们实际中不会用到那么高的频率,因此我们需要一个分频器将此 20M 的频率分频到我们所需的频率,分频器原程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_l
26、ogic_unsigned.all;use ieee.std_logic_arith.all;entity div is port( CLK_IN : in std_logic; CLK_OUT : buffer std_logic; DIV_TIME : in std_logic_vector(15 downto 0) );end entity;武汉理工大学EDA 课程设计说明书11architecture behave of div issignal data1: integer range 0 to 10000000;signal data2: integer range 0 to 10
27、000000;begin process(CLK_IN,DIV_TIME) begin if rising_edge(CLK_IN) then if data1 = DIV_TIME then data1 = 0; if data2 = 1000 then data2 = 0; CLK_OUT = not CLK_OUT; else data2 = data2 + 1; end if; else data1 = data1 + 1; end if; end if; end process;end behave; 武汉理工大学EDA 课程设计说明书126 编译与仿真6.1 程序编译按要求安装好
28、Quarters ,打开已安装好的软件并新建一个工程图 6.1 新建工程完成后选择芯片,由于本次设计要求用到EP1C3T144C8芯片,因此如图5.2中选择该芯片。图6.2 选择芯片武汉理工大学EDA 课程设计说明书13 由于本次设计要用到多种模块,应此要考虑元件例化或画连接图,为了编程简单我们选择画连接图,如图所示在新建文档里选择“Block Diagram/Schematic File”进入画图界面,如图6.3所示: 图6. 3 画图界面课程设计总程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith
29、.all;use ieee.std_logic_unsigned.all;entity design is port( CLK : in std_logic; KEY_CLR : in std_logic; KEY_IN : in std_logic_vector(6 downto 0); BELL : out std_logic; LED : out std_logic; LED_7 : out std_logic_vector(6 downto 0) );end entity;architecture behave of design iscomponent div is武汉理工大学EDA
30、 课程设计说明书14 port( CLK_IN : in std_logic; CLK_OUT : buffer std_logic; DIV_TIME : in std_logic_vector(15 downto 0) );end component;component create is port( CLR : in std_logic; CLK_1S : in std_logic; SIG_OUT : out std_logic; CODE : in std_logic_vector(6 downto 0) );end component;type states is(st0,st1,
31、st2,st3,st4,st5,st6,st7);signal current_state : states;signal clk_1s : std_logic;signal clk_1k : std_logic;signal code_in : std_logic;signal BELL1 : std_logic;beginprocess(clk_1s,KEY_CLR)begin if KEY_CLR = 0 then current_state = st0; LED = 0 ; LED_7 0); BELL1 = 0; else LED if code_in = 1 then curren
32、t_state = st1; else current_state = st0; end if; LED_7(0)=code_in; BELL1 if code_in = 1 then current_state = st2; else current_state = st0;武汉理工大学EDA 课程设计说明书15 end if; LED_7(1) if code_in = 1 then current_state = st3; else current_state = st0; end if; LED_7(2) if code_in = 0 then current_state = st4;
33、 else current_state = st3; end if; LED_7(3) if code_in = 0 then current_state = st5; else current_state = st1; end if; LED_7(4) if code_in = 1 then current_state = st6; else current_state = st0; end if; LED_7(5) if code_in = 0 then current_state = st7; else current_state = st2; end if; LED_7(6) curr
34、ent_state = st0; BELL1 current_state = st0; end case; end if; end if;end process;process(BELL1) begin if BELL1 = 1 then武汉理工大学EDA 课程设计说明书16 BELL = clk_1k; else BELL CLK, CLK_OUT = clk_1s, DIV_TIME = 0010011100010000 );DIV2 : div port map(CLK_IN = CLK, CLK_OUT = clk_1k, DIV_TIME = 0000000000001010 );CREATE1 : create port map(CLR = KEY_CLR, CLK_1S = clk_1s, SIG_OUT = code_in, CODE = KEY_IN ); end behave;武汉理工大学EDA 课程设计说明书176.2 实验仿真运行程序直至调试到无错误后生成实验总图如下所示 图 6.4 总原理图在总体电路图界面中选择“new”中的 “vector waveform file”在 processing 中选择simulator tool,进行仿真图 6.5 新建 ve
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三只小猪造房子教学课件
- 小儿麻疹的护理
- 小儿金翘颗粒课件
- 大班美术课教案及教学反思《我们心中的美丽家园》
- 大学生简历中的自我评价
- 难点解析-陕西省华阴市7年级上册期末测试卷专项训练试卷(含答案详解)
- 小儿肺结核教学课件
- 小儿科肺结核临床课件
- 小儿溶血病课件
- 小儿晕厥鉴别诊断课件
- 妇女维权法律知识讲座
- 2025年内蒙古自治区中考语文真题含答案
- 2025版危险货物道路运输综合预案(电石)
- 2025年中医确有专长考试试题及答案
- DB32∕T 4553-2023 医疗机构医疗器械不良事件监测工作指南
- 2025年机关事业单位技能资格考试-政工历年参考题库含答案解析(5套共100道单选合辑)
- GB/T 3880.3-2006一般工业用铝及铝合金板、带材第3部分:尺寸偏差
- 肺功能解读教学课件
- 妇产科学-第十二章-正常分娩课件
- 腓肠神经皮瓣课件
- 1【L】系列离心式冷水机组技术手册
评论
0/150
提交评论