2022年电子实习报告 2.pdf
江苏工业学院硬件实习报告第页共 15 页目录1 前 言.2.硬 件 电 路 设 计 及 描 述.32.1可编 程 逻 辑 器 件.32.2各序 列 产 生 的 时 序 波 形 图.3.V HDL 语 言设 计 及 描 述.53.1 VH DL 语 言 介 绍.53.2 M 序 列 VHDL 流 程 图 及 描 述.63.3 BP SK 序 列 VHDL 流 程 图 及 描 述.73.4 CMI 序 列 VHDL 流 程 图 及 描述.73.5设计 思 路.74 VHDL源 程 序 代 码.84.1 M 序 列 VHDL 程 序 代 码.84.2 BP SK VHDL 语言 程 序 代 码.94.2 CMI设 计 VHDL 语言 程 序 代 码.11参 考 文 献:.14名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页1 前 言M 序列是一类重要的伪随机序列,最早应用于扩频通信.可以通过移位寄存器,利用MATLAB 编程产生 m 序列。伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性.因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数,有随机噪声的优点,又避免了随机噪声的缺点.M 序列是伪随机序列中最重要的序列中的一种伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能.因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用.M序列是最大长度线性移位寄存器序列的简称,序列有很多优良的特性,例如他同时具有随机性和规律性好的自相关和互相关性且很容易产生,首先用在扩频通信系统中及移动通信技术的特征之一是码分多址即CDMA码,CDMA 是码分的基础。这里的码就是伪随机码简称伪码序列。BPSK(二相相移键控)把模拟信号转换成数据值的转换方式之一。是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。使用了基准的正弦波和相位反转的波浪,使一方为 0,另一方为 1,从而可以同时传送接受2 值(1 比特)的信息。由于最单纯的键控移相方式虽抗噪音较强但传送效率差,所以常常使用利用 4 个相位的 QPSK 和利用 8 个相位的 8PSK。BPSK 传输系统可以在加入噪声环境下进行各项指标测量,通过对 BPSK 调制信号眼图观测(不匹配/匹配)、调制信号包络观察;相干载波相位模糊度观测、相干载波相位模糊度对解调数据的影响测量。移相键控分为绝对移相和相对移相两种。以未调载波的相位作为基准的相位调制叫作绝对移相。以二进制调相为例,取码元为“1”时,调制后载波与未调载波同相;取码元为“0”时,调制后载波与未调载波反相;“1”和“0”时调制后载波相位差180。CMI 码是一种非归零码,它是传号反转码的简称,它也是通信中的比较常用的基带信号之一。CMI 码的编码规则为:1码交替用 00和11表示,0码用01表示。仔细观察可以发现其实 Miller码和CMI 码都是差分码中的一种,它是一种把信息符号0和1反映在相邻码元的相对变化上,它是一种相对码,之所以称之为相对码完全是为了和我们的普通编码区分,我们最普通的编码方式是绝对码,也就是用高电平表示 1,用低电平表示 0,当然也可以反过来表示。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页2.硬件 电 路 设 计 及 描 述2.1可 编 程 逻 辑 器件可编程逻辑器件(Programmable Logic Device,PLD)起源于 20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级PLD 时,不需额外地改变 PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐,形成了巨大的 PLD 产业规模。本设计使用 MAX7000S系列的 EPM7064SLC84-10芯片,设计过程包括:电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现与布局布线、实现与布局布线、板级仿真与验证、芯片编程与调试。2.2 各 序 列 产 生 的 时 序 波 形图M 序列(反馈系数为 13)产生的波形如图 2 所示。图 2 M 序 列产 生 的波 形M 序列(反馈系数 23)产生的波形如图3 所示。图 3 M 序 列产 生 的 波 形M 序列(反馈系数 103)产生的波形如图4 所示。图 4 M 序 列产 生 的 波 形M 序列(反馈系数 203)产生的波形如图5 所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页图 5 M 序 列 产 生 的 波形时钟信号 8 分频的 BPSK 波形图如图 6 所示。图 6 M 序 列 产生 的 波形时钟 16 分频 BPSK 波形图如图 7 所示。图 7 M 序 列 产生 的 波形7 位伪码序列 BPSK 波形图如图 8 所示。图 8 M 序 列 产生 的 波形全零序列 BPSK 波形图如图 9 所示。图 9 M 序 列 产 生 的 波 形名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页图 10 CMI 编 码 波 形3.V HDL 语 言设 计 及 描 述3.1 V HDL 语 言 介 绍VHDL 语言 是 一 种 用 于电 路 设计 的 高 级 语 言。它在 80 年 代 的 后 期出 现。最 初 是 由 美 国 国 防 部 开 发出 来 供 美 军 用来 提 高设 计 的 可 靠 性和缩 减 开 发周 期 的一 种 使 用 范 围较 小 的 设 计 语 言。VHDL 的英 文 全 写是:VHSIC(VeryHi gh SpeedI nte gra tedCircuit)Hard war e Description Lan guage.翻 译 成 中 文 就 是 超高 速 集 成 电 路 硬件 描 述 语 言。因 此 它 的应 用 主要 是 应 用 在 数字 电 路 的 设 计 中。目 前,它 在 中 国 的应用 多 数 是用 在 FPGA/CPLD/EPLD 的设 计 中。当 然 在一 些 实 力 较 为雄 厚的 单 位,它 也 被用 来 设 计 ASIC。VHDL 主 要 用 于 描述 数 字系 统 的 结 构,行 为,功能 和 接 口。除了含 有 许 多具 有 硬件 特 征 的 语 句外,VHDL 的 语 言 形 式和 描 述 风 格 与句法 是 十 分类 似 于一 般 的 计 算 机高 级 语 言。VHDL的 程序 结 构 特 点 是将一 项 工 程设 计,或 称 设计 实 体(可 以 是 一 个 元 件,一 个 电 路 模 块 或一个 系 统)分 成 外部(或 称 可视 部 分,及端 口)和 内 部(或称 不 可 视 部 分),既 涉 及 实体 的 内部 功 能 和 算 法完 成 部 分。在 对一 个 设计 实 体 定 义 了外部 界 面 后,一 旦 其 内 部开 发 完 成后,其 他 的 设计 就 可以 直 接 调 用 这个实 体。这种 将 设计 实 体 分 成 内外 部 分 的 概 念是 VHDL 系 统 设 计 的基 本特 点。3.2 M 序 列 VHDL 流 程 图 及 描 述M序列工作流程图如图14 所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页如图 14 M 序列 VHDL 流程实习所用 M序列产生级数对应表如图15。M 序 列的级数 nM 序列的周期 P=2n-1M 序列的数目反馈系数 Ci(采用八进制)3 7 213 4 15 223 6 63 6103,147,155图 15M序 列 产 生 级 数 对 应 表3.3 BP SK 序 列 VHDL流 程 图及 描 述理论 上 二 进 制 相 移 键 控(BPSK)可 以 用 幅 度 恒 定,而 其 载 波 相 位随着 输 入 信号(1、0 码)而 改变,通 常 这 两 个 相 位 相差 180。一般 BPSK 的调制器如图14。X1X2X3X4信 号输入时钟信号输出C1C2C3C4C0名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页图 14 一般 BPSK 的调制器3.4 CMI 序 列 VHDL 流程 图 及 描 述 CMI序列工作流程图如图16 所示。采 样反 相开 关合 成翻 转 电 路判 决 电 路BSNRZ信 码01CMI 码 输 出如 图 16 C MI 序 列 工 作 流 程 图3.5设计 思 路由 M序列的产生过程,即通过带反馈的移位寄存器产生,容易想到EDA中的结构化的程序设计思想,即以 DFF触发器作为底层文件,进行顶层文件设计,获得 M序列。此设计的优点是程序思路简单,结构清晰,只要做出一种反馈系数的 M序列,容易得到其他反馈系数的M序列;但也存在缺点,那就是结构化的设计使得代码写的过长。4VHDL 源程序代码4.1 M 序列 VHDL 程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity m_sequence is port(main_clk:in std_logic;m_sel :in std_logic_vector(1 downto 0);m_out :out std_logic);end m_sequence;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页architecture behave of m_sequence is component dff port(d,clk:in std_logic;q:out std_logic);end component;signal out0,out1,out2,out3:std_logic;signal a:std_logic_vector(0 to 3);signal b:std_logic_vector(0 to 4);signal c:std_logic_vector(0 to 6);signal d:std_logic_vector(0 to 7);signal temp0,temp1,temp2,temp3:std_logic;begin a(0)=temp0;-反馈系数为 13 u13_1:dff port map(a(0),main_clk,a(1);u13_2:dff port map(a(1),main_clk,a(2);u13_3:dff port map(a(2),main_clk,a(3);temp0=not(a(2)xor a(3);out0=not a(3);b(0)=temp1;-反馈系数为 23 u23_1:dff port map(b(0),main_clk,b(1);u23_2:dff port map(b(1),main_clk,b(2);u23_3:dff port map(b(2),main_clk,b(3);u23_4:dff port map(b(3),main_clk,b(4);temp1=not(b(3)xor b(4);out1=not b(4);c(0)=temp2;-反馈系数为 103 u103_1:dff port map(c(0),main_clk,c(1);u103_2:dff port map(c(1),main_clk,c(2);u103_3:dff port map(c(2),main_clk,c(3);u103_4:dff port map(c(3),main_clk,c(4);u103_5:dff port map(c(4),main_clk,c(5);u103_6:dff port map(c(5),main_clk,c(6);temp2=not(c(5)xor c(6);out2=not c(6);d(0)=temp3;-反馈系数为 203 u203_1:dff port map(d(0),main_clk,d(1);u203_2:dff port map(d(1),main_clk,d(2);u203_3:dff port map(d(2),main_clk,d(3);u203_4:dff port map(d(3),main_clk,d(4);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页u203_5:dff port map(d(4),main_clk,d(5);u203_6:dff port map(d(5),main_clk,d(6);u203_7:dff port map(d(6),main_clk,d(7);temp3=not(d(6)xor d(7);out3=not d(7);m_out=out0 WHEN m_sel=00 ELSE -四选一选择一种码输出 out1 WHEN m_sel=01 ELSE out2 WHEN m_sel=10 ELSE out3;end behave;4.2 BPSK VHDL语言程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity bpsk is port(mux_clock:in std_logic;m_sel :in std_logic_vector(1 downto 0);ref_clk :out std_logic;data_out:out std_logic;bpsk_out:out std_logic );end entity;architecture behave of bpsk is component dff port(d,clk:in std_logic;q:out std_logic);end component;signal a:std_logic_vector(0 to 3);signal temp0:std_logic;signal out0,out1,out2,out3:std_logic;signal ref_clock:std_logic;begin ref_clock=mux_clock;ref_clk=ref_clock;data0:process(mux_clock)-产生时钟信号的八分频 variable cnt:integer range 0 to 8;begin 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页 if mux_clockevent and mux_clock=1 then cnt:=cnt+1;if cnt=4 then out0=1;elsif cnt8 then out0=0;else cnt:=0;end if;end if;end process data0;data1:process(mux_clock)-时钟信号十六分频电路 variable cnt:integer range 0 to 16;begin if mux_clockevent and mux_clock=1 then cnt:=cnt+1;if cnt=8 then out1=1;elsif cnt16 then out1=0;else cnt:=0;end if;end if;end process data1;a(0)=temp0;-反馈系数为 23 的七位伪码序列u13_1:dff port map(a(0),mux_clock,a(1);u13_2:dff port map(a(1),mux_clock,a(2);u13_3:dff port map(a(2),mux_clock,a(3);temp0=not(a(2)xor a(3);out2=not a(3);out3data_out=out0;bpsk_outdata_out=out1;bpsk_outdata_out=out2;bpsk_outdata_out=out3;bpsk_outdata_out=out3;bpsk_out=out3 xor ref_clock;end case;end process output;end behave;4.2 CMI 设计 VHDL 语言程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cmi is port(clk :in std_logic;m_sel :in std_logic_vector(1 downto 0);data_out:buffer std_logic;cmi_out:out std_logic);end cmi;architecture behave of cmi is component dff port(d,clk:in std_logic;q:out std_logic);end component;signal main_clk:std_logic;signal out0,out1,out2,out3:std_logic;signal cmi_out0:std_logic:=0;signal a:std_logic_vector(0 to 3);signal b:std_logic_vector(0 to 4);signal c:std_logic_vector(0 to 6);signal d:std_logic_vector(0 to 7);signal temp0,temp1,temp2,temp3:std_logic;signal cmi_temp:std_logic;begin fenpin2:process(clk)-产生时钟信号的二分频信号 variable cnt:integer range 0 To 1;begin if clkevent and clk=1 then if cnt=1 then main_clk=0;cnt:=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页 else main_clk=1;cnt:=cnt+1;end if;end if;end process;a(0)=temp0;-反馈系数为 13 u13_1:dff port map(a(0),main_clk,a(1);u13_2:dff port map(a(1),main_clk,a(2);u13_3:dff port map(a(2),main_clk,a(3);temp0=not(a(2)xor a(3);out0=not a(3);b(0)=temp1;-反馈系数为 23 u23_1:dff port map(b(0),main_clk,b(1);u23_2:dff port map(b(1),main_clk,b(2);u23_3:dff port map(b(2),main_clk,b(3);u23_4:dff port map(b(3),main_clk,b(4);temp1=not(b(3)xor b(4);out1=not b(4);c(0)=temp2;-反馈系数为 103 u103_1:dff port map(c(0),main_clk,c(1);u103_2:dff port map(c(1),main_clk,c(2);u103_3:dff port map(c(2),main_clk,c(3);u103_4:dff port map(c(3),main_clk,c(4);u103_5:dff port map(c(4),main_clk,c(5);u103_6:dff port map(c(5),main_clk,c(6);temp2=not(c(5)xor c(6);out2=not c(6);d(0)=temp3;-反馈系数为 203 u203_1:dff port map(d(0),main_clk,d(1);u203_2:dff port map(d(1),main_clk,d(2);u203_3:dff port map(d(2),main_clk,d(3);u203_4:dff port map(d(3),main_clk,d(4);u203_5:dff port map(d(4),main_clk,d(5);u203_6:dff port map(d(5),main_clk,d(6);u203_7:dff port map(d(6),main_clk,d(7);temp3=not(d(6)xor d(7);out3data_outdata_outdata_outdata_outdata_out=out3;end case;end if;end process output;process(clk)begin if(clkevent and clk=1)then cmi_temp=not cmi_temp;end if;end process;process(clk)begin if(data_out=1)then cmi_out=cmi_temp;else cmi_out=not clk;end if;end process;end behave;参 考 文 献:1朱 正 伟.EDA 技 术 及 应 用 M.北 京:清 华 大 学 出 版 社,2005.10:16 0-1 802 朱 正 伟,何宝 祥.数 字 电 路 逻 辑 设 计M.北 京:清 华 大 学出 版 社,2006.4-253 刘 岚.FPGA 应 用 技 术 基 础 教 程 M.北 京:电 子 工 业 出 版 社2009.20-29名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 14 页 -江苏工业学院硬件实习报告第页共 15 页4刘 皖.FPGA设计 与 应 用 M.北 京:清 华 大学 出 版 社 20 06.50-67名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 14 页 -