数字基带信号码型发生器.doc

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

《数字基带信号码型发生器.doc》由会员分享,可在线阅读,更多相关《数字基带信号码型发生器.doc(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

13、 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); -AMI(1)=1CFM=latch

14、_cfm; -差分码信FXM=latch_cnt xnor latch_sig; -分相码信号if latch_sig=1 then CMI=latch_cfm; -编码信号反转码else CMI=not(latch_cnt);end if;end process;end Behavioral;. 仿真波形(1) 激励时钟设置Clock Time High: 20 ns.Clock Time Low: 20 ns.Input Setup Time: 10 ns.Output Valid Delay: 10 ns.Offset: 0 ns.Global Signals: GSR (FPGA) (

15、2) 仿真结果A.局部放大图:当dat=010时,16位输入序列为1111000000000000,仿真波形如图,满足码型转换规则。B.时序仿真全图:当dat由000变化到111时(即由0到7),输入序列由0000000000000000变化到1111111111111100,NRZ的占空比也越来越大。仿真波形如下图,符合预期要求。六、引脚分配及硬件实现. 引脚分配NET AMI LOC = F9 ;NET AMI LOC = E9 ;NET CFM LOC = D11 ;NET clk LOC = C9 ;NET CMI LOC = C11 ;NET dat LOC = N17 ;NET d

16、at LOC = H18 ;NET dat LOC = L14 ;NET DRZ LOC = F11 ;NET NRZ LOC = E11 ;NET SRZ LOC = E12 ;NET SRZ LOC = F12 ;NET Start LOC = L13 ;. 硬件实现() 连接FPGA开发板和电源,FPGA和电脑的通信线路。() FPGA开发板上的四个开关作为输入量,从左到右顺次代表dat(0)、,dat(1)、dat(2)、Start。() FPGA开发板上的8路LED作为输出量,从左到右顺次代表六种不同的基带码型输出信号。(舍去了FXM码,否则还需要一路输出型号)。() 完成下载程序后

17、,可通过控制Start和dat到dat来验证基带码型转换的正确性。七实验结果由于LED灯反应速率相对基带码速率慢得多,基带码的波形在LED灯上表现不够明显,实验中经多次修改程序,我们使用特殊输入码,使得NRZ码的效果明显,经验证,当dat2.0由000增加到111时,代表NRZ码型的E11的信号灯亮度逐渐增强,表明程序在FPGA开发板上运行正常。而其他相关码型的正确性可通过软件的仿真波形来验证,经过ISE软件的仿真和模拟该程序可以正常完成所要求的基带码型转换功能。八、心得体会通过这次FPGA设计,我们加深了对FPGA芯片设计流程的了解,熟悉了FPGA的开发环境,并且在下载验证遇到障碍时,及时地通过修改程序来适应硬件环境限制的办法,增强了我们在以后学习和工作中的积极性和信心,今后在FPGA设计当中,我们将先注意芯片以及外围配套硬件的环境情况,根据实际编写程序,以尽快达到要求,完成设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号