数字基带信号码型发生器

上传人:桔**** 文档编号:431795946 上传时间:2022-07-11 格式:DOC 页数:9 大小:4.27MB
返回 下载 相关 举报
数字基带信号码型发生器_第1页
第1页 / 共9页
数字基带信号码型发生器_第2页
第2页 / 共9页
数字基带信号码型发生器_第3页
第3页 / 共9页
数字基带信号码型发生器_第4页
第4页 / 共9页
数字基带信号码型发生器_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数字基带信号码型发生器》由会员分享,可在线阅读,更多相关《数字基带信号码型发生器(9页珍藏版)》请在金锄头文库上搜索。

1、FPGA设计课程设计报告数字基带信号码型发生器专 业: 集 成 电 路班 级: 电 子 0 6 0 4 数字基带信号码型发生器一、实验目的.学习应用VHDL语言和相关码型转换原理实现基带码型转换。.熟悉ISE软件的使用,和Xilinx FPGA开发板的使用。.熟悉FPGA系统开发的流程和步骤。4 .培养软件和硬件联合开发的能力和与小组成员分工合作的习惯。二、ISE简介本实验使用Xilinx公司的FPGASpartan 3E芯片,与芯片相搭配的开发软件是ISE,ISE可以完成FPGA开发的全部流程,即设计输入、仿真、综合、布局布线、生成BIT文件、配置及在线调试等。对大多数FPGA设计者来说,使

2、用ISE即可完成设计任务。ISE集成了很多实用工具,包括HDL编辑器HDL Editor、IP核生成器CORE Generator System、约束编辑器Constraints Editor、静态时序分析工具Static Timing Analyzer、布局规划工具Floorplanner、FPGA编辑工具FPGA Editor、功耗分析工具XPower、配置工具Impact、综合工具XST等。尤其是ISE集成环境Project Navigator、仿真工具ISE Simulator Lite(也可以使用Modelsim)、综合工具XST和配置工具Impact,这些是FPGA初学者先要掌握的

3、。三、实验原理1. 几种典型的基带码型(1) 单极性非归零码(NRZ码):这种传输码的零电平与正电平(或负电平)分别对应于二进制代码中的“0”码与“1”码。(2) 双极性非归零码(SRZ码):这种传输码的正、负电平分别对应于二进制代码中的“1”码与“0”码。(3) 单极性归零码(RZ码):在传送“1”码时发送一个宽度小于码元持续时间的归零脉冲;传送“0”码时不发送脉冲。(4) 差分码(CFM码):差分码利用前后码元电平的相对极性变化来传送信息,又称为相对码。(5) 交替极性码(AMI码):编码规则是,二进制代码中的“1”码由正、负极性交替的脉冲表示,其脉宽等于码元周期的一半;二进制代码中的“0

4、”码由零电平表示。(6) 分相码(FXM码):每个码元用两个连续极性相反的脉冲表示。如“1”码用正、负脉冲表示,“0”码用负、正脉冲表示。(7) 编码信号反转码(CMI码):二进制代码中的“1”码交替地用“11”和“00”表示;“0”码则固定地用“01”表示。2.码型转换原理说明:1.“高位”为正负极性标志位,其中高电平(1)表示负极性,低电平(0)表示正极性; 2.“ ”表示高、低两种电平;3.基带码发生器的原理框图说明:双极性的码形需要数字部分+模拟电路来实现,图中没有包含模拟电路部分,输出信号为数字信号。对双极性的信号如双极性归零码(RZ)、交替极性码(AMI)码码形输出时引入正负极性标

5、志位,而对双极性非归零码(NRZ)和差分码码形输出时由低电平表示负极性。四、实验过程. 建立新工程并设置并选择设备型号和仿真器;. 新建VHDL文件,编写程序代码并检查语法错误;. 新建波形仿真文件,设置clock和输入信号,并进行行为仿真;. 分配FPGA引脚;. 下载配置文件,使用板载的 USB 接口,通过 JTAG将 FPGA 设计直接下载到 Spartan3E 的FPGA中;五、VHDL文件及仿真分析.VHDL文件(基带传输码型变换程序)(1)编程思想由于FPGA开发板上只有4个输入端和8个输出端,可通过3个输入端选择8种模式的16位序列dat_16,第四个输入端作为异步复位端。由于片

6、上时钟频率为5MHz,为了便于观察现象,可令这8种模式的序列的占空比逐渐增加。由于占空比越大,发光二极管越亮。这样就可以在下载后通过改变输入,观察NRZ信号输出端的亮度来确定程序是否正确执行。基带传输码型变换程序的核心是通过16位移位寄存器来移出16位序列dat_16的最高位到锁存器latch_sig,再根据同步时钟产生一个控制占空比的信号latch_cnt,最后再根据这两个信号和码型变换的相关规则来决定码型输出信号的值。(2)全部vhdl程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IE

7、EE.STD_LOGIC_UNSIGNED.ALL;entity HS_UJDM5 isPort (clk : in std_logic; -系统时钟 Start : in std_logic; -始能信号dat : in std_logic_vector(2 downto 0); -二进制数据输入端NRZ : out std_logic; -非归零信号输出端DRZ : out std_logic; -单极性归零信号输出端SRZ : out std_logic_vector(1 downto 0);-双极性归零信号AMI : out std_logic_vector(1 downto 0);

8、-交替极性信号输出端CFM : out std_logic; -差分信号输出端CMI : out std_logic; -编码信号反转码信号输出端FXM : out std_logic); -分相码(曼彻斯特码)信号输出端end HS_UJDM5;architecture Behavioral of HS_UJDM5 isSignal dat_16 :std_logic_vector(15 downto 0);BeginProcess(clk)beginif clkevent and clk=1 then If dat=000 then dat_16=0000000000000000;-八种不

9、同的输入分别对应 NRZ信号不同的占空比Elsif dat=001 then dat_16=1100000000000000;Elsif dat=010 then dat_16=1111000000000000;Elsif dat=011 then dat_16=1111110000000000;Elsif dat=100 then dat_16=1111111100000000;Elsif dat=101 then dat_16=1111111111000000;Elsif dat=110 then dat_16=1111111111110000;Elsif dat=111 then dat

10、_16=1111111111111100;end if;End if;end process;process(clk,start)variable latch_dat : std_logic_vector(15 downto 0); -十六位二进制信号锁存器variable latch_sig : std_logic; -高位信号锁存器variable latch_cfm : std_logic; -差分码variable latch_cnt : std_logic; -基带码同步信号variable count_fri : integer range 0 to 2; -分频计数器(码宽定义)

11、variable count_mov : integer range 0 to 16; -移位计数器beginif start=0 then latch_cnt:=0; -异步复位latch_cfm:=0; latch_sig:=0; count_fri:=0;count_mov:=16; -异步置位latch_dat:=0000000000000000;elsif rising_edge(clk) then count_fri:=count_fri+1; -分频计数器+1 if count_fri=2 then count_fri:=0; -计数到2if count_mov16 then c

12、ount_mov:=count_mov+1; -移位计+1 latch_sig:=latch_dat(15); -二进制码高位移入latch_sig中 latch_dat:=latch_dat(14 downto 0)&0; -二进制数据向高位移动一位,低位补零 else latch_dat:=dat_16;count_mov:=0; -载入下一轮将发送的数据 latch_cfm:=0;latch_sig:=0;latch_cnt:=0; -寄存器复位end if; if latch_sig=1 then latch_cfm:=not(latch_cfm); -差分码信号寄存器中信号取反end if; end if; if count_fri1 then latch_cnt:=1; -基带码同步信号的占空比调节 else latch_cnt:=0; end if; end if;NRZ=latch_sig; -非归零码信号DRZ=latch_sig and latch_cnt; -单极性归零码信号SRZ(0)=latch_cnt; -双极性归零码信号SRZ(1)=not(latch_sig); -SRZ(1)=1表示负极性AMI(0)=latch_sig and latch_cnt; -极性交替码信号AMI(1)=not(latch_cfm);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号