《DSP技术与应用》
课程设计报告
课 题 名 称:基于
DSP Builder的巴克码检出设计与实现
学 院:电子信息工程学院
班 级:09电信统本01班
学 号:091102010123
姓 名:张伟
1
基于DSP Builder的巴克码检出设计与实现(张伟)
摘要
一般而言,数字信号处理(DSP)是指应用数字的方法(模拟电子技术)处理各种类型信息的基本理论和基本算法;而DSP技术,或者说DSP(系统实现)开发技术主要是指将DSP基本理论和算法付诸实现的途径和方法。这是两个根本不同的概念,然而却常常被混淆,以致于一谈起DSP,难免让人不由自主的联想到类似于T1的DSP器件,误认为DSP技术等同于DSP处理器的应用,认为DSP的实现方式只能是DSP处理器。这不能不让人想到是否是由于某种隐含的,但却是长时间的商业暗示所致。
事实上,在DSP领域,出了普通的DSP处理器以外,利用FPGA来实现DSP
系统已经十分普遍。而且在许多诸如实时图像处理、联合战术无线电通信系统、3G移动通信基站、实施工控系统、卫星导航设备等领域中,FPGA的DSP解决方案已经成为非此莫属的选择了!
巴克码是最常用的帧同步码组。为了实现巴克码组的有效检出,利用DSP Builder设计了一种新的巴克码识别器电路。在Matlab/Simulink中对设计的电路进行了纯数字仿真,然后将设计的系统载入到FPGA芯片中,运用硬件在回路仿真技术进行半实物仿真。结果表明,基于DSP Builder设计的巴克码检出电路简单易行、稳定可靠,达到了预期的要求。
1
基于DSP Builder的巴克码检出设计与实现(张伟)
目录
摘要 .................................................................................................................................................. 1 一、绪论........................................................................................................................................... 3 二、巴克码原理 ............................................................................................................................... 5
1.巴克码 ................................................................................................................................... 5 2.设计原理 ............................................................................................................................... 5 3.13位巴克码识别器 .............................................................................................................. 5 三、DSP Builder设计流程 ............................................................................................................. 6
1. 利用DSP Builder库建立巴克码帧同步检出模型 ......................................................... 6 2.加入激励,完成系统仿真,通过Scope模块所得波形图如下 ....................................... 7 3.由simulink模型转换成VHDL ............................................................................................ 8 4.综合........................................................................................................................................ 8 5.利用Modelsim完成功能仿真 .............................................................................................. 9 6.编译适配 .............................................................................................................................. 10 四、课程设计心得 ......................................................................................................................... 11 五、参考文献 ................................................................................................................................. 12 六、附录......................................................................................................................................... 13
2
基于DSP Builder的巴克码检出设计与实现(张伟)
一、绪论
由于信号的远距离传输,不可避免地存在信号的延时、干扰、非线性失真等。因而为了使通信系统有效、可靠地工作,就必须进行同步⋯。在数字系统中,信号流的最小单元是码元,一般总是以若干个码元组成一个帧,若干个帧组成一个复帧,即组成一个个的“帧”进行传输。帧同步的任务就是在位同步的基础上识别出这些数字信息(帧)“开头”和“结尾”的时刻,使接收设备的帧定时与接收到的信号中的帧定时处于同步状态。实现帧同步的常用方法是连贯式插入法,它是指在每帧的开头集中插入特殊的同步码组,该特殊码组要求具有尖锐单峰特性的局部自相关函数,以便于与信息码区别,另外识别器应尽量简单 。目前,一种最常用的帧同步码组是巴克码,而巴克码检出电路的设计则是实现帧同步的核心内容。本文基于DSP Builder提出了设计及实现巴克码检出电路的一种新方法。在通信系统中,同步技术起着相当重要的作用。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波,获得此相干载波的过程称为载波提取,或称为载波同步。而在数字通信中,消息是一串连续的信号码元序列,解调时常须知道每个码元的起止时刻。因此,就要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。当通信是在两点之间进行时,完成了载波同步、位同步和帧同步之后,接收端不仅获得了相干载波,而且通信双方的时标关系也解决了,这时,接收端就能以较低的错误概率恢复出数字信息。
巴克码用在通信系统中的帧同步,主要是利用其具有尖锐的自相关函数的特点,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。巴克码
3
基于DSP Builder的巴克码检出设计与实现(张伟)
是一种具有特殊规律的二进制码组,它是一种非周期序列。
目前已发现的所有巴克码组如下表 n 2 3 4 5 7 11 13 巴克码组 + + + + -- + + + -- ; + + -- + + + + -- + + + + -- -- + -- + + + -- -- -- + -- -- + -- + + + + + -- -- + + -- + -- + 其中,“+”表示取值为高电平1,“一”表示取值为低电平0。依要求及上面的巴克码组可知,13位的巴克码发生器应在输入时钟信号或者模拟时钟信号作用下依次产生“1111100110101”的码元序列。
2. 帧同步与巴克码
由于信号的远距离传输,不可避免地存在信号的延时、干扰、非线性失真等。因而为了使通信系统有效、可靠地工作,就必须进行同步。在数字系统中,信号流的最小单元是码元,一般总是以若干个码元组成一个帧,若干个帧组成一个复帧,即组成一个个的“帧”进行传输。帧同步的任务就是在位同步的基础上识别出这些数字信息(帧)“开头”和“结尾”的时刻,使接收设备的帧定时与接收到的信号中的帧定时处于同步状态。实现帧同步的常用方法是连贯式插 入法,它是指在每帧的开头集中插入特殊的同步码组,该特殊码组要求具有尖锐单峰特性的局部自相关函数,以便于与信息码区别,另外识别器应尽量简单。目前,一种最常用的帧同步码组是巴克码,而巴克码检出电路的设计则是实现帧同步的核心内容。
在数字通信系统中,实现帧同步的方法通常有两种:起止式同步法和集中式插入同步法。起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。另外在计算机RS232串口通信中通常也使用类似方法。而在集中式插入同步法中,要求插入的同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。同时接收机端的同步码识别器要尽量简单。目前用得比较广泛的是性能良好的巴克(Barker)码。
4
基于DSP Builder的巴克码检出设计与实现(张伟)
二、巴克码原理
1.巴克码
巴克码是一种有限长的非周期数字序列。一个n位巴克码序列{ x1,x2 ,…,xi ,…,xn },其中xi 的取值为+1或一1,其局部相关函数R(j)满足下式:
其中:j表示错开的位数。当j =0时,R(j)=n;R(j)为其他值时,R(j)在±1附近波动,具有尖锐单峰特性的局部自相关函数。实际使用中的巴克码都在7位以上,过短的码组容易受衰落或干扰的影响。对于l3位巴克码组{+1,+1,+1,+1,+1,一1,一1,+1,+1,一1,+1,一1,+1},其局部自相关函数为:
由上式可看出,l3位巴克码组的自相关函数具有尖锐的单峰特性。 2.设计原理
序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。在本次设计中首先要设计一个巴克码发生器,然后再设计巴克码检测器。 3.13位巴克码识别器
当一帧信号到来时,首先进入识别器的是巴克码组,用巴克码识别器对该巴克码组进行相关运算,只有当13位巴克码在某一时刻正好全部进入13位寄存器时,13个移位寄存器输出端都输出+1,相加后的最大值输出为+13,其余情况相
5
基于DSP Builder的巴克码检出设计与实现(张伟)
加结果均小于+13。对于输入的信息序列,与巴克码组相同的可能性极小。故识别器的相加输出也只能小于+l3。若判决器的判决门限电平定为+12,那么就在13位巴克码的最后一位进入识别器时,识别器输出一个同步识别脉冲表示一帧的开头。13位巴克码识别器的结构如图所示。
三、DSP Builder设计流程
1. 利用DSP Builder库建立巴克码帧同步检出模型
DSP Builder是一个面向DSP开发的系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个设计工具连接起来,都放在Matlab/Simulink图形设计平台上,而将Quartus II作为底层设计工具置于后台,最大程度发挥了各种工具的优势。除了图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载至FPGA开发板上 。l3位巴克码识别器实现的DSP Builder模型如图所示
其中ShiftTaps模块实现输入序列存储,add,sub子系统模块实现±xixi+j运算,
6
基于DSP Builder的巴克码检出设计与实现(张伟)
Comparator模块和常数模 块实现判决器功能。
在Simulink中通过FromWorkspacel模块从Matla的工作区获得输入序列eleesignal,命令如下:
val=[1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0]’
tm=1:40; tm = tm ’
simin=[tm,va1] 然后调用模型中的TestBench模块,运用第三方仿真软件Modelsim进行仿真,仿真波形如图所示。仿真结果表明:当出现13位巴克码组1111100110101时,l3位巴克码识别器就会输出一个同步脉冲。此时,时钟clk的周期为100 Ixs,因为当时钟周期设定值很小时,比如纳秒级别,系统很容易出现冒险竞争现象,因此要将时钟周期的值设定得大一些。
2.加入激励,完成系统仿真,通过Scope模块所得波形图如下
7
基于DSP Builder的巴克码检出设计与实现(张伟)
3.由simulink模型转换成VHDL
4.综合
在SignalCompiler中选择QuartusⅡ进行综合
8
基于DSP Builder的巴克码检出设计与实现(张伟)
5.利用Modelsim完成功能仿真
9
基于DSP Builder的巴克码检出设计与实现(张伟)
6.编译适配
在QuartusⅡ中打开SignalCompiler建立的Quartus项目文件,选择具体器件,锁定管脚,完成适配。
7.下载
10
基于DSP Builder的巴克码检出设计与实现(张伟)
四、课程设计心得
本次设计持续了两周时间,时间虽短,但其中的艰辛以及老师孜孜不倦的指
导是无法用语言表达的。这次设计让我对DSP有了更加深刻的了解
在设计过程中,有很多次遇到自己无法解决的问题,我都请教邓老师,老师
都耐心的给我讲解出错的原因,以及以后该如何避免这种错误。看着别人一个个都做成了自己的设计,我心急如焚。在课余时间,去机房独自做我的题目,可问题还是一个接一个的来,还好邓老师在百忙之中抽出时间来给我指点。让我终于圆满完成了本次设计。在此我要感谢邓老师对我孜孜不倦的教导,没有她的帮助,我这次设计根本无法完成。在她的指点下,我对DSP有了更加深刻的了解,对现代DSP技术里所涉及的MATLAB、QUARTUSⅡ、ModelSim软件有了更加熟练的运用及它们之间的配合。
11
基于DSP Builder的巴克码检出设计与实现(张伟)
五、参考文献
[1] 王亮兴,达新宇.数字通信原理与技术[M].西安:西安电子科技大学出版社,2003. [2] 潘松,黄继业,王国栋.现代DSP技术[M].西安:西安电子科技大学出版社,2003. [3] 杨学兵,马林华,李森.一种低密度奇偶校验码帧自同步方法[J].电光与控制,2009,16(6):81-85.
[4] 张伟.用VerilogHDL设计可辨别相位模糊的巴克码识别器[J].现代电子技术,2004,147(7):45.46.
[5] 龙光利.巴克码识别器的设计与FPGA的实现[J].科技广场,2006(4):110—112. [6] 罗韩君,刘明伟,林亚风.基于Dspbuilder的DDS设计与实现[J].现代电子技术,2008(7):148-150.
[7] 吴继华,王诚.Altera FPGA/CPLD设计(高级篇)[M]. jE京:电子工业出版社,2004. [8] 杨涤,李立涛,杨旭,等.系统实时仿真开发环境与应用 [M].北京:清华大学出版社,2002.
[9] 侯建军,郭勇.SOPC技术基础教程[M].北京:北京交通大学出版社,20o8.
[1O] 刘邹,丁青青.基于Proteus的硬件在回路仿真[J].计算机仿真,2009(2):312—328.
12
基于DSP Builder的巴克码检出设计与实现(张伟)
六、附录VHDL程序
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_signed.all;
library dspbuilder;
use dspbuilder.dspbuilderblock.all;
library lpm;
use lpm.lpm_components.all;
Entity bakema is Port( clock : in std_logic; sclrp : in std_logic:='0'; AltBus : in std_logic; AltBus1 : out std_logic ); end bakema;
architecture aDspBuilder of bakema is
signal sclr : std_logic:='0'; signal A0W : std_logic; signal A1W : std_logic_vector(19 downto 0); signal A2W : std_logic_vector(6 downto 0); signal A3W : std_logic;
13
signal A4W :
std_logic_vector(2 downto 0); signal A5W : std_logic_vector(2 downto 0); signal A6W : std_logic_vector(2 downto 0); signal A7W : std_logic_vector(2 downto 0); signal A8W : std_logic_vector(2 downto 0); signal A9W : std_logic_vector(2 downto 0); signal A10W : std_logic_vector(2 downto 0); signal A11W : std_logic_vector(2 downto 0); signal A12W : std_logic_vector(2 downto 0); signal A13W : std_logic_vector(2 downto 0); signal A14W : std_logic_vector(2 downto 0); signal A15W : std_logic; signal A16W : std_logic; signal A17W : std_logic; signal A18W : std_logic; signal A19W : std_logic; signal A20W : std_logic; signal A21W : std_logic; signal A22W : std_logic;
基于DSP Builder的巴克码检出设计与实现(张伟)
signal A23W : std_logic; signal A24W : std_logic; signal A25W : std_logic; signal p3A0L0Add : std_logic_vector(2 downto 0); signal p3B0L0Add : std_logic_vector(2 downto 0); signal p3A1L0Add : std_logic_vector(2 downto 0); signal p3B1L0Add : std_logic_vector(2 downto 0); signal p3A2L0Add : std_logic_vector(2 downto 0); signal p3B2L0Add : std_logic_vector(2 downto 0); signal p3A3L0Add : std_logic_vector(2 downto 0); signal p3B3L0Add : std_logic_vector(2 downto 0); signal p3A4L0Add : std_logic_vector(2 downto 0); signal p3B4L0Add : std_logic_vector(2 downto 0); signal p3A5L0Add : std_logic_vector(2 downto 0); signal p3A0L1Add : std_logic_vector(3 downto 0); signal p3B0L1Add : std_logic_vector(3 downto 0); signal p3A1L1Add : std_logic_vector(3 downto 0); signal p3B1L1Add : std_logic_vector(3 downto 0); signal p3A2L1Add : std_logic_vector(3 downto 0); signal p3B2L1Add : std_logic_vector(3 downto 0); signal p3A0L2Add : std_logic_vector(4 downto 0); signal p3B0L2Add : std_logic_vector(4 downto 0); signal p3A1L2Add : std_logic_vector(4 downto 0); signal p3A0L3Add :
14
std_logic_vector(5 downto 0);
signal p3B0L3Add : std_logic_vector(5 downto 0);
-- SubSystem Hierarchy - Simulink Block \"bxn1m\"
component bxn1m port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxn1m1\"
component bxn1m1 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxn1m2\"
component bxn1m2 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out
基于DSP Builder的巴克码检出设计与实现(张伟)
std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxn1m6\"
component bxn1m6 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxn1m7\"
component bxn1m7 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxn1m8\"
component bxn1m8 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ;
15
AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxpm\"
component bxpm port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxpm1\"
component bxpm1 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxpm2\"
component bxpm2 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in
基于DSP Builder的巴克码检出设计与实现(张伟)
std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxpm3\"
component bxpm3 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
-- SubSystem Hierarchy - Simulink Block \"bxpm4\"
component bxpm4 port( clock : in std_logic ; sclr : in std_logic ; AltBus : in std_logic ; AltBus1 : out std_logic_vector(1 downto 0) ); end component ;
signal AShiftTapsi_unconnected : std_logic;
Begin
assert (1<0) report altversion severity Note;
16
-- Output - I/O assignment from Simulink Block \"AltBus1\" AltBus1 <= A3W;
-- Global reset circuitry for the input global reset sclrp sclr <= sclrp;
-- Input - I/O assignment from Simulink Block \"AltBus\" A0W <= AltBus;
-- Constant assignment - Simulink Block \"Constant1\"
A1W(19 downto 0) <= \"00000000000000001010\";
-- Sum Operator - Simulink Block \"ParallelAdderSubtractor\" p3A0L0Add <= A9W; p3B0L0Add <= A14W; p3A1L0Add <= A6W; p3B1L0Add <= A5W; p3A2L0Add <= A13W; p3B2L0Add <= A4W; p3A3L0Add <= A8W; p3B3L0Add <= A7W; p3A4L0Add <= A12W; p3B4L0Add <= A11W; p3A5L0Add <= A10W;
-- Unsigned to Signed type extension msb <='0'
A4W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A5W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A6W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A7W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
基于DSP Builder的巴克码检出设计与实现(张伟)
A8W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A9W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A10W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A11W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A12W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A13W(2) <= '0';
-- Unsigned to Signed type extension msb <='0'
A14W(2) <= '0';
-- Sum Operator - Simulink Block \"ParallelAdderSubtractor\"
u3_L0_Inst0 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A0L0Add, datab => p3B0L0Add, clock => clock, ena => '1', sclr => sclr, result => p3A0L1Add);
17
u3_L0_Inst1 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A1L0Add, datab => p3B1L0Add, clock => clock, ena => '1', sclr => sclr, result => p3B0L1Add);
u3_L0_Inst2 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A2L0Add, datab => p3B2L0Add, clock => clock, ena => '1', sclr => sclr, result => p3A1L1Add);
u3_L0_Inst3 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength
基于DSP Builder的巴克码检出设计与实现(张伟)
=> 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A3L0Add, datab => p3B3L0Add, clock => clock, ena => '1', sclr => sclr, result => p3B1L1Add);
u3_L0_Inst4 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A4L0Add, datab => p3B4L0Add, clock => clock, ena => '1', sclr => sclr, result => p3A2L1Add);
u3_L0_Inst5 : SAdderSub generic map ( LPM_WIDTH => 3, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal =>
18
AddAdd)
port map ( dataa => p3A5L0Add, datab => \"000\ clock => clock, ena => '1', sclr => sclr, result => p3B2L1Add);
u3_L1_Inst0 : SAdderSub generic map ( LPM_WIDTH => 4, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A0L1Add, datab => p3B0L1Add, clock => clock, ena => '1', sclr => sclr, result => p3A0L2Add);
u3_L1_Inst1 : SAdderSub generic map ( LPM_WIDTH => 4, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A1L1Add, datab =>
基于DSP Builder的巴克码检出设计与实现(张伟)
p3B1L1Add, clock => clock, ena => '1', sclr => sclr, result => p3B0L2Add);
u3_L1_Inst2 : SAdderSub generic map ( LPM_WIDTH => 4, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A2L1Add, datab => p3B2L1Add, clock => clock, ena => '1', sclr => sclr, result => p3A1L2Add);
u3_L2_Inst0 : SAdderSub generic map ( LPM_WIDTH => 5, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A0L2Add, datab => p3B0L2Add, clock => clock, ena => '1', sclr => sclr,
19
result =>
p3A0L3Add);
u3_L2_Inst1 : SAdderSub generic map ( LPM_WIDTH => 5, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A1L2Add, datab => \"00000\ clock => clock, ena => '1', sclr => sclr, result => p3B0L3Add);
u3_L3_Inst0 : SAdderSub generic map ( LPM_WIDTH => 6, PIPELINE => 1, SequenceLength => 1, SequenceValue => 1, AddSubVal => AddAdd) port map ( dataa => p3A0L3Add, datab => p3B0L3Add, clock => clock, ena => '1', sclr => sclr, result => A2W);
基于DSP Builder的巴克码检出设计与实现(张伟)
-- Compare Operator - Simulink Block \"Comparator\"
Comparatori : Comparator generic map ( LPM_WIDTH =>20, DIRECTION=> Altagb, LPM=> 0) port map ( DATAA(6 downto 0) => A2W(6 downto 0), DATAA(7) => A2W(6), DATAA(8) => A2W(6), DATAA(9) => A2W(6), DATAA(10) => A2W(6), DATAA(11) => A2W(6), DATAA(12) => A2W(6), DATAA(13) => A2W(6), DATAA(14) => A2W(6), DATAA(15) => A2W(6), DATAA(16) => A2W(6), DATAA(17) => A2W(6), DATAA(18) => A2W(6), DATAA(19) => A2W(6), DATAB => A1W, result => A3W);
-- SubSystem Hierarchy - Simulink Block \"bxn1m\"
bxn1mi : bxn1m port map( AltBus =>
20
A20W,
clock => clock, sclr => sclr, AltBus1(1 downto 0) => A4W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxn1m1\"
bxn1m1i : bxn1m1 port map( AltBus => A18W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A5W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxn1m2\"
bxn1m2i : bxn1m2 port map( AltBus => A17W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A6W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxn1m6\"
bxn1m6i : bxn1m6 port map( AltBus => A22W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A7W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxn1m7\"
bxn1m7i : bxn1m7 port map( AltBus =>
基于DSP Builder的巴克码检出设计与实现(张伟)
A21W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A8W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxn1m8\"
bxn1m8i : bxn1m8 port map( AltBus => A15W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A9W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxpm\"
bxpmi : bxpm port map( AltBus => A25W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A10W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxpm1\"
bxpm1i : bxpm1 port map( AltBus => A24W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A11W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxpm2\"
bxpm2i : bxpm2 port map( AltBus =>
21
A23W,
clock => clock, sclr => sclr, AltBus1(1 downto 0) => A12W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxpm3\"
bxpm3i : bxpm3 port map( AltBus => A19W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A13W(1 downto 0));
-- SubSystem Hierarchy - Simulink Block \"bxpm4\"
bxpm4i : bxpm4 port map( AltBus => A16W, clock => clock, sclr => sclr, AltBus1(1 downto 0) => A14W(1 downto 0));
-- Tap Delay Line - Simulink Block \"ShiftTaps\"
ShiftTapsi : SShiftTap generic map ( width => 1, use_dedicated_circuitry => 0, lpm_hint => \"None\ number_of_taps => 11, tap_distance => 1) port map (data(0) => A0W, clock => clock, sclr => sclr, ena => '1',
基于DSP Builder的巴克码检出设计与实现(张伟)
taps(0) => taps(1) => taps(2) => taps(3) => taps(4) => taps(5) => taps(6) => taps(7) =>
A15W, A16W, A17W, A18W, A19W, A20W, A21W, A22W,
taps(8) => taps(9) => taps(10) =>
end architecture aDspBuilder;
A23W, A24W, A25W);
22
因篇幅问题不能全部显示,请点此查看更多更全内容