当前位置:文档之家› 巴克码发生器设计

巴克码发生器设计

摘要本课程设计主要是利用QUARTERSⅡ设计一个8位巴克码代码发生器,当识别到一组代码时,输出一个高电平脉冲。

巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。

巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。

关键词:QUARTERSⅡ,巴克码,信号发生器,序列1绪论在通信系统中,同步技术起着相当重要的作用。

通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。

通信系统中的同步可分为载波同步、位同步、帧同步等几大类。

当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波,获得此相干载波的过程称为载波提取,或称为载波同步。

而在数字通信中,消息是一串连续的信号码元序列,解调时常须知道每个码元的起止时刻。

因此,就要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。

在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。

数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。

因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。

当通信是在两点之间进行时,完成了载波同步、位同步和帧同步之后,接收端不仅获得了相干载波,而且通信双方的时标关系也解决了,这时,接收端就能以较低的错误概率恢复出数字信息。

在数字通信系统中,实现帧同步的方法通常有两种:起止式同步法和集中式插入同步法。

起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。

另外在计算机RS232串口通信中通常也使用类似方法。

而在集中式插入同步法中,要求插入的同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。

同时接收机端的同步码识别器要尽量简单。

目前用得比较广泛的是性能良好的巴克(Barker)码。

2 巴克码简介巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。

巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。

一个n位的巴克码组为{ ,:,,. ,},其中的取值是+1或一1,其局部自相关函数为:目前已发现的所有巴克码组如表1:表1 已发现的巴克码组其中,“+”表示取值为高电平1,“一”表示取值为低电平0。

依要求及上面的巴克码组可知,8位的巴克码发生器应在输入时钟信号作用下依次产生“01110010”的码元序列。

3 Quarters Ⅱ设计软件介绍3.1 VHDL发展史及特点VHDL诞生于1982年。

随后各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。

现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL 的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。

因此它的应用主要是应用在数字电路的设计中。

目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。

当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL语言特点(1)VHDL语言功能强大、设计灵活。

VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。

它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。

VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

(2)支持广泛、易于修改。

由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。

在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。

(3)强大的系统硬件描述能力。

VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。

而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。

另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。

VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。

(4)独立于器件的设计、与工艺无关。

设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。

当设计描述完成后,可以用多种不同的器件结构来实现其功能。

(5)很强的移植能力。

VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。

(6)易于共享和复用。

VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。

这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

(7)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(8)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(9)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

总之,由于VHDL语言有这么多优点和特点,因此它被广泛的应用在电路系统的设计和器件的设计仿真中。

3.2 Quarters Ⅱ应用Quarters Ⅱ是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计,是Altera公司的第4代可编程逻辑器件集成开发环境,提供了从设计输入到器件编程的全部功能,与Max+plus Ⅱ相比,Quarters Ⅱ设计软件增加了网络编辑功能,提升了调试能力,解决了潜在的设计延迟,同时其强大的设计能力和直观易用的接口,受到数字系统设计者的普遍欢迎。

Quarters Ⅱ开发系统具有以下主要特点:Quarters Ⅱ可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为第三方EDA工具提供了方便的接口。

Quarters Ⅱ支持一个工作组环境下的设计要求,包括支持基于Internet的协作设计,与Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA 供应商的开发工具相兼容。

Quarters Ⅱ作为一种设计环境,除支持Altera的APEX 20KE,APEX 20KC,APEXⅡ,ARM的Excalibur嵌入式处理器方案,Mercury,FLEX10KE和ACEX1K之外,还支持MAX3000A 和MAX7000系列乘积项器件。

Quarters Ⅱ增加了一个新的快速适配编译选项,可缩短50%的编译时间。

快速适配功能保留了最佳性能的设置,加快了编译过程,编译速度更快,对设计性能的影响最小[3]境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

Quarters Ⅱ设计软件界面如图3.1所示。

图3.1 Quarters Ⅱ设计软件界面4设计原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。

由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。

在检测过程中,任何一位不相等都将回到初始状态重新开始检测。

在本次设计中首先要设计一个巴克码发生器,然后再设计巴克码检测器。

4.1 巴克码发生器发生器原理:N位触发器构成的计数器可产生M个代码。

原理图:图4.1巴克码发生器原理图当计数脉冲不断进入由Q3Q2Q1组成的三位二进制异步计数器时,3-8译码器的8个输出经反相器后顺序输出高电平。

其中五路信号经“或非”后再和其中3路“或”,在Y端便可顺序产生11000100代码序列。

代码序列发生:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bak1 isport( clk,reset: in std_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' thencount<=(others=>'0');elsif rising_edge(clk) thencount<=count+1;case count iswhen "000"=>tmp1<='1' ;when "001"=>tmp1<='1' ;when "010"=>tmp1<='1' ;when "011"=>tmp1<='0' ;when "100"=>tmp1<='0' ;when "101"=>tmp1<='1' ;when "110"=>tmp1<='0' ;when "111"=>tmp1<='1' ;when others=>tmp1<='0';end case;end if;end process;end a;5 编译与仿真5.1 程序编译按要求安装好Quarters Ⅱ,打开已安装好的软件并新建一个工程图5.1 新建工程完成后选择芯片,由于本次设计要求用到EP1C3T144C8芯片,因此如图5.2中选择该芯片。

相关主题