可编程逻辑器件实验报告.doc_第1页
可编程逻辑器件实验报告.doc_第2页
可编程逻辑器件实验报告.doc_第3页
可编程逻辑器件实验报告.doc_第4页
可编程逻辑器件实验报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京工业大学 可编程逻辑器件实验报告可编程逻辑器件作业北京工业大学电子信息工程实验班王智一09022128一、实验内容1.38译码器(1)设计输入建立新的工程,建立新的VHDL FILE,输入程序代码(注意:工程文件夹、工程名称以及顶层实体名推荐使用相同的名称):程序代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity demo isPort ( A : in STD_LOGIC_VECTOR (2 downto 0);EN: in STD_LOGIC;Y : out STD_LOGIC_VECTOR (7 downto 0);end demo;architecture DEC of demo issignal indata:STD_LOGIC_VECTOR (2 downto 0);beginprocess(A,EN)beginindata(0)=A(0);indata(1)=A(1);indata(2)YYYYYYYYYoutp:=1111110;when 0001=outp:=0110000;when 0010=outp:=1101101;when 0011=outp:=1111001;when 0100=outp:=0110011;when 0101=outp:=1011011;when 0110=outp:=1011111;when 0111=outp:=1110000;when 1000=outp:=1111111;when 1001=outp:=1111011;when 1010=outp:=1110111;when 1011=outp:=0011111;when 1100=outp:=1001110;when 1101=outp:=0111101;when 1110=outp:=1001111;when 1111=outp:=1000111;when others=null;end case;a=outp(0);b=outp(1);c=outp(2);d=outp(3);e=outp(4);f=outp(5);g=outp(6);end process;end a; (2)编译实验仿真波形:图5 数码管输出波形3.BPSK的解调(1)BPSK的解调原理:调相信号是通过载波的相位变化来传输消息的,它具有恒定的包络,而且频率上也无法分离,所以不能采用包络解调,只能采用相干解调。图6 BPSK相干解调原理图(2)VHDL语言LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_arith.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY demo IS PORT ( clk : IN std_logic;-系统时钟 start : IN std_logic;-开始调整信号 x: IN std_logic;-已调波信号 y : OUT std_logic); -基带信号END demo;ARCHITECTURE behave OF demo ISSIGNAL q: integer RANGE 0 TO 3; -分频计数器BEGINPROCESS (clk)BEGINIF (clkevent AND clk=1) THENIF start=0 THEN q=0;ELSIF q=0 THEN q=q+1; -在q=0时,根据输入信号x的电平来进行判决IF x=1 THEN y=1;ELSE y=0;END IF;ELSIF q=3 THEN q=0;ELSE q=q+1;END IF;END IF;END PROCESS;END behave;(3)仿真波形图7 BPSK解调的输出波形说明:当输入的已调波信号x相位为0时,输出的基带信号y为高电平;当输入的相位为时,输出的基带信号y为低电平。4.FSK的解调(1)FSK解调原理:解调方法也有相干和非相干解调两类。图8 FSK相干解调原理图用频率为f1的载波表示“1”码,用频率为f2的载波表示“0”码。(2)VHDL语言LIBRARY ieee;USE ieee.std_logic_arith.all;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY demo isPort(clk :in std_logic; -系统时钟 start :in std_logic; -同步信号 x :in std_logic; -已调波信号 y :out std_logic); -基带信号END demo;ARCHITECTURE BEHAV OF demo ISSIGNAL q:integer range 0 to 7; -计数器SIGNAL xx:std_logic; -寄存x信号SIGNAL m:integer RANGE 0 TO 5; -计xx的脉冲数BEGINa:PROCESS(clk) -对系统时钟进行q分频,BEGINIF clkevent AND clk=1 THEN xx=x; -clk上升沿时,把x信号赋给中间信号xx IF start=0 THEN q=0; -if语句完成q的循环计数 ELSIF q=7 THEN q=0; ELSE q=q+1; END IF;END IF;END PROCESS;b:PROCESS(xx,q) -此进程完成FSK解调BEGIN IF q=7 THEN m=0; -m计数器清零 ELSIF q=6 THEN IF m=2 THEN y=0; -if语句通过对m大小,来判决y输出的电平 ELSE y=1; END IF;ELSIF xxevent and xx=1THEN m=m+1; -计xx信号的脉冲个数ELSE END IF;END PROCESS;END BEHAV;图9 FSK解调的输出波形说明:(1)在q=7时,m清零。(2)在q=6时,根据m的大小,进行对输出基带信号y的电平的判决。(3)在q为其它时,m计xx(x信号的寄存器)的脉冲数。(4)输出的基带信号y滞后输入的调制信号x 6个clk。(5)当频率比较高时,基带信号y为高电平;当频率比较低时,基带信号y为低电平。二、心得体会由于Quartus9.0以上的版本都不含自带的波形仿真功能,所以我选择从经典版本Quartus9.0开始学习。经过实验和作业的完成,我对Quartus9.0的使用更加熟练。由最初的各种借书、查资料、对Quartus9.0使用的摸索,到现在已经能比较熟练地使用基本的编程和波形仿真的功能,其间所获得的收获让我感到十分高兴。在使用Quartus9.0之前,我曾经学习过Xilinx,由于Xilinx的各种人性化设计,比如文件名不用与实体名相同(不同时系统会自动更改)、库文件等不用自己定义(系统自动生成)、波形仿真时间长。基于对Xilinx这些便捷的依赖,使我在刚开始学习Quartus9.0有一些小小的不适应。同样的程序在Xilinx运行的很好,但在Quartus9.0中却编译不过去。也正是通过对这些问题的解决,让我更加清楚了一些更底层的使用规则。作业的完成,也是对VHDL语言的学习过程。VHDL编程的思想类似于C语言,主要就是注意其中并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论