课程设计报告-基于EDA的数字式移相信号发生器.doc_第1页
课程设计报告-基于EDA的数字式移相信号发生器.doc_第2页
课程设计报告-基于EDA的数字式移相信号发生器.doc_第3页
课程设计报告-基于EDA的数字式移相信号发生器.doc_第4页
课程设计报告-基于EDA的数字式移相信号发生器.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

数字式移相信号发生器数字式移相信号发生器 课程设计报告课程设计报告 系系 别:别: 专业班级:专业班级: 学生姓名:学生姓名: 学生学号:学生学号: 指导教师:指导教师: (课程设计时间:2011 年 1 月 4 日2011 年 1 月 22 日) 前 言 eda 技术是一门涉及多学科的综合性技术,是以大规模逻辑器件为设计载 体,以硬件描述语言为系统逻辑表达的主要方式,以计算机、大规模可编程逻 辑器件的开发软件及实验开发系统为设计工具通过有关的开发软件,自动完成 用软件方式设计的电子系统到硬件系统的逻辑编译、化简、分割、综合、优化、 布局布线及仿真,直至对特定目标芯片的适配编译、逻辑映射、编程下载等工 作,最终形成集成电子系统或专业集成芯片的一门新技术。 本次课程设计中我们基于 eda 技术,运用 vhdl 编制程序,完成数字式移相 频率计的程序编辑,最终下载到 acex1k 系列 epf1k50lc208-3 芯片上,加以简 单的外围电路,构成数字移相信号发生器。该装置能测出频率在 20hz-2000khz 之间的正弦波信号频率,并给出指定相位差的两路同频信号。 - 1 - 目目 录录 1.课程设计目的 1 2.题目描述及要求2 3.课程设计报告内容 2 3.1 系统框图 2 3.2 系统各组成部分介绍3 3.2.1 数字移相及信号产生模块3 3.2.2 数字频率计模块7 3.2.3 显示模块13 3.3 系统完整介绍15 3.4 引脚分配16 4.总结17 参考文献19 - 2 - 1 1 课程设计目的课程设计目的 (1)进一步加深对 eda 技术的基本知识的理解,提高 vhdl 编程仿真程序的 运用能力。 (2)培养根据课题需要查找参考书籍和文献资料,并学习运用的的能力, 从而更好的培养了自学能力和独立思考问题和解决问题的能力。 (3)培养硬件设计、软件设计及系统软、硬件调试的基本思路、方法和技 巧,并能熟练使用当前较流行的一些有关电路设计与分析方面的软件和硬件。 (4)培养严肃认真的工作作风和科学态度,逐步建立正确的生产观念、工 程观念和全局观点。 2 2 题目描述及要求题目描述及要求 设计题目:数字式移相信号发生器 设计要求:(1)被测正弦信号频率范围:20hz2000khz; (2)正弦信号频率皆采用 bcd 码计数方式;具有正弦信号频率 测量及数字显示功能; (3)能够输出给定相位差的两路同频,相位测量绝对误差 2。 3.3. 课程设计报告内容课程设计报告内容 3.1 系统框图 系统整体框图如下图 3-1 所示: 正弦信号 q1 正弦信号 q2 时钟输入信号 移相信号 同频方波 1hz 时钟信号 图 3-1 数字式移相频率计的系统框图 数字式移相频率计的系统框图如图 3-1 所示,通过一给定频率的时钟输入 信号,使数字移相模块(fpga)产生正弦信号 q1,同时产生与 q1 同频的方波 信号送给数字频率计模块,测出方波频率再通过显示模块译码后,逐一送 8 个 led 显示。同时通过键盘输入二进制的移相信号给数字移相模块,来输出与正 数 字 移 相 模 块 数 字 频 率 计 模 块 显 示 模 块 - 3 - 弦信号 q1 有指定相位差的同频正弦信号 q2。 3.2 系统各组成部分介绍 3.2.1 数字移相及信号产生模块 该模块的作用是产生两路指定相位差的同频信号,同时输出与之频率相同 的正弦信号。先对正弦信号进行一周期 64 点的采样,再把采样正弦波幅值送到 两个 frpg 的 rom 中。通过时钟输入信号是指针信号在“000000”到 “111111”进行加 1 循环计数,从而对一个 rom 的值逐一读取。另一个 rom 中指针的值,则是在这个指针信号值的基础上加相位偏移量 din。这样就达到 了输出两路相位差的同频信号。 因为对正弦信号进行 64 点采样,则每相邻两点之间相位差为 360/64=5.625,所有本移相信号发生器的最小精度为 5.625。 (1)数字移相及信号产生模块程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity yx2 is port(clk:in std_logic; din:in std_logic_vector(5 downto 0); dout,yxdout: out std_logic_vector(7 downto 0); fsout:out std_logic); end entity yx2; architecture art of yx2 is signal q1,q2: std_logic_vector(5 downto 0); signal q3,a1,a2: std_logic_vector(6 downto 0); begin a2doutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutnull; end case; end process; process(q2) is begin case q2 is when “000000“=yxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutnull; end case; end process; - 7 - end architecture art; (2)波形仿真 控制模块运行波形仿真图如图 3-2 所示,移相信号 din 为 2,则图中输出 俩正弦波 dout 与 yxdout 的相位差正好是 2,而输出方波信号 fsout 正好在 dout 为 0 时发生翻转,从而使 fsout 与 dout 同频。 图 3-2 数字移相及信号产生模块运行波形仿真图 3.2.2 数字频率计模块 8 位数字频率计的原理框图如下图 3-3 所示: 输入方波信号 tsten 待显示频率信号 1hz 信号 clr_cnt load 图 3-3 8 位数字频率计的原理框图 该数字频率计通过 1hz 标准信号,使控制模块控制计数器在 1s 内对输入方 波进行计数,从而测出其频率,送到锁存模块锁存。 (1)系统个组成部分 控制模块 控制模块是产生测量所需的各种控制,如图 3-4 所示,clk 为 1hz 的标准 时钟信号;tsten 为使能信号,当 clk 上升沿时,发生翻转,若为高电平,计 数器开始计数;load 为锁存信号,其值是 tsten 的反向信号,真好当 tsten 变 为 0,一次计数完成时,它就变为高电平,把计数器的值锁存;clr_cnt 为置位 信号,当 clkt、sten 都为低电平时,对计数器进行置位清零,好 1 进行下一轮 计数。 通过图 2-4 可看出,在时钟信号的两个周期内,完成一个计数周期(2s) , 一次计数的时间为 1s。在一个计数周期内,对待测信号的上升沿进行计数,正 好是待测信号的频率。 控 制 模 块 计 数 模 块 锁 存 模 块 - 8 - clk tsten load clr_cnt 图 3-4 控制信号时序关系 控制模块程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity testctl is port(clk: in std_logic; tsten: out std_logic; clr_cnt: out std_logic; load :out std_logic); end entity testctl; architecture art of testctl is signal div2clk:std_logic; begin process(clk) is begin if clkevent and clk=1 then div2clkclk,tsten=se,clr_cnt=sc,load=sl); u1:cnt10 port map(clk=fsin,clr=sc,ena=se, cq=sd(3 downto 0),carry_out=s1); u2:cnt10 port map(clk=s1,clr=sc,ena=se, cq=sd(7 downto 4),carry_out=s2); u3:cnt10 port map(s2,sc,se,sd(11 downto 8),s3); u4:cnt10 port map(s3,sc,se,sd(15 downto 12),s4); u5:cnt10 port map(s4,sc,se,sd(19 downto 16),s5); u6:cnt10 port map(s5,sc,se,sd(23 downto 20),s6); u7:cnt10 port map(s6,sc,se,sd(27 downto 24),s7); u8:cnt10 port map(s7,sc,se,sd(31 downto 28),s8); u9:reg32b port map(load=sl,din=sd(31 downto 0),dout=dout ); end architecture art; - 13 - 波形仿真 数字频率计仿真波形如图 3-8 所示: 图 3-8 数字频率计波形仿真图 待测信号 fsin 周期为 20ms,即 50hz,通过仿真波形可看出,数字频率计 测出其频率也 50hz。 数字频率计原理图 数字频率计的原理图如图 3-9 所示,她是数字频率计顶层程序的另一种表 示。 图 3-9 数字频率计原理图 3.2.3 显示模块 本文采用 8 个共阴极数码管来显示待测频率的数值,其显示范围从 0 99999999。 (1)显示模块程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; - 14 - entity display is port(in32:in std_logic_vector(31 downto 0); lout7:out std_logic_vector(6 downto 0); sel:out std_logic_vector(2 downto 0); clk:in std_logic); end display; architecture art of display is signal q:std_logic_vector(2 downto 0); signal lout4:std_logic_vector(3 downto 0); begin process (clk) begin if (clkevent and clk=1)then if (q=“111“) then qlout4lout4lout4lout4lout4lout4lout4lout4lout4lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7=“0000000“; end case; end process; end architecture art; (2)波形仿真 显示模块仿真波形如图 3-10 所示: 图 3-10 显示模块运行波形仿真图 输入频率为 8 位 bcd 码,lout7 为晶体管段选信号。信号 sel 则选择将 lout7 送入哪一个晶体管,从而实现将输入的 8 为 bcd 频率信号逐一送入对于的晶体 管 显示。 3.3 系统完整介绍 (1)系统原理图 系统的原图见图 3-11,这里通过原理图的方式将各个模块连接起来,让其 组成数字式移相信号发生器的总程序。 (2)仿真波形 系统总的仿真波形见图 3-12,给时钟信号 input 的周期为 2ms,由此产生 两路同频正弦信号 q1,、q2,其频率为 500/648hz,在 sel 进行逐次加 1 选择 - 16 - 晶体管时,lout7 依次输出 7f、3f、3f、3f、3f、3f、3f、3f,晶体管将显示 00000008。又由于键盘输入相位差为“04”则 q1、q2 的相位差为 45.62522.5。 图 3-11 数字式移相频率计原理图 图 3-12 数字式移相频率计运行波形仿真图 3.4 引脚分配 引脚分配如表 3-1 所示,input 接任意频率,来决定产生正弦波的频率; clk1 接 1hz 方波时钟信号;clk 接 7812hz 输入频率,作为显示模块的时钟输 入;jp50分别接 k5 到 k0 六个拨码开关;lout760接到 8 个 led 的七段显 示;sel20接 138 译码器,通过译码对 8 个 led 进行片选输出;q170和 - 17 - q270接两个 d/a 转换的输入端,使这两路正弦信号由数字量转变为模拟量, 从而能在示波器上显示两路正弦信号。 表 3-1 系统引脚分配 信号名称信号名称fpga i/o 名称名称信号名称信号名称fpga i/o 名称名称 inputpin_118lout76pin_17 jp0pin_111q10pin_38 jp1pin_112q11pin_39 jp2pin_113q12pin_40 jp3pin_114q13pin_41 jp4pin_115q14pin_44 jp5pin_116q15pin_45 clkpin_119q16pin_46 clk1pin_125q17pin_47 sel0pin_101q20pin_26 sel1pin_102q21pin_27 sel2pin_107q22pin_28 lout70pin_114q23pin_29 lout71pin_8q24pin_30 lout72pin_9q25pin_31 lout73pin_10q26pin_36 lout74pin_12q27pin_37 lout75pin_13 4.4. 总结总结 经过这次数字式移相频率计的课程设计,首先让我对 max+plus ii 这一软 件的使用从熟悉到能熟练使用,对运用 eda 技术解决一些实际问题有了更进一 步的了解。同时在掌握 vhdl语言的基础上,培养了我对资料的查阅、理解 的能力,独立思考问题、解决问题的能力也得到了很大的提升,为之后毕业设 - 18 - 计打下了很好的基础。 在这次设计中,出现了很多由于粗心而引起的问题,vhdl 程序编辑时,往 往会忘记一个标点,导致最后编译时产生很多错误;在程序的编辑过程中逻辑 思维能力也十分要,有时定义一个变量,会由于逻辑不严密导致这一变量被多 次同时赋值导致冲突。总体上,我感觉在程序的编辑过程中存在很多的乐趣, 思考的乐趣,发现问题、解决问题的乐趣等

温馨提示

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

评论

0/150

提交评论