信号发生器(EDA).doc_第1页
信号发生器(EDA).doc_第2页
信号发生器(EDA).doc_第3页
信号发生器(EDA).doc_第4页
信号发生器(EDA).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

深 圳 大 学 实 验 报 告 课程名称: 实验名称: 信号发生器 学院: 信息工程学院 专业: 电子信息工程 班级: 2010级电子2班 组号: 指导教师: 报告人: 学号: 实验时间: 2012 年 10 月 31 日 星期 三 实验地点 南区N413 实验报告提交时间: 2012.11.07 实验要求:题目、信号发生器要求:1.使用有限状态机设计一个电路,它可以产生如图所描述的两个信号(Out1和Out2), 该电路只有一个输入时钟信号Clk。Out1和Out2都是周期信号,且周期长度相同。 在两个信号中,一个在靠近Clk的上升沿触发,另一个在Clk的两个边沿上都会发 生变化。 2.不使用有限状态机模型,设计一个电路,完成上述信号Out1和Out2输出;实验内容:A.不使用有限状态机。A.1.程序代码Library IEEE;Use IEEE.STD_LOGIC_1164.ALL;Entity Sig_Gentor is Generic (n : integer := 4); Port ( Clk : in STD_LOGIC; Out1 : buffer STD_LOGIC :=0; Out2 : buffer STD_LOGIC :=0 );End Sig_Gentor;Architecture Sig_Gentor of Sig_Gentor isBegin Process(Clk) Variable count1,count2:integer range 0 to n; Begin if(Clkevent and Clk=1) then count1:=count1+1; if(count1 = 4 ) then count1:=0; End if; if(count1 = 1 or count1 = 2) then Out1=not Out1; End if; if(count1 = 1 or count1 = 2 or count1 = 3) then Out2=not Out2; End if; End if; if(Clkevent and Clk=0) then count2:=count2+1; if(count2 = 4 ) then count2:=0; End if; if(count2 = 2 ) then Out2 Clk, Out1 = Out1, Out2 = Out2 ); - Clock process definitions Clk_process :process beginClk = 0;wait for Clk_period/2;Clk = 1;wait for Clk_period/2; end process; - Stimulus process stim_proc: process begin - hold reset state for 100 ns. wait for 100 ns; wait for Clk_period*10; - insert stimulus here wait; end process;END;仿真波形B.使用有限状态机。B.1.程序代码Library IEEE;Use IEEE.STD_LOGIC_1164.ALL;Entity Sig_Gentor_X is Port ( Clk : in STD_LOGIC; Out1,Out2 :buffer STD_LOGIC :=0;End Sig_Gentor_X;Architecture Sig_Gentor_X of Sig_Gentor_X is Type state is (one,two,three,four); Signal pr_state1,nx_state1 : state; Signal pr_state2,nx_state2 : state; Signal pr_state0,nx_state0 : state; Signal Outp1,Outp2 : STD_LOGIC; BeginProcess(Clk)Begin if(Clkevent and Clk=1) then pr_state0 Out1 =1; nx_state0 Out1 =0; nx_state0 Out1 =0; nx_state0 Out1 =0; nx_state0=one;End Case;End Process;Process(Clk)Begin if(Clkevent and Clk=1) then pr_state1 Outp1 =0; nx_state1 Outp1 =1; nx_state1 Outp1 =0; nx_state1 Outp1 =0; nx_state1=one;End Case;End Process;Process(Clk)Begin if(Clkevent and Clk=0) then pr_state2 Outp2 =0; nx_state2 Outp2 =1; nx_state2 Outp2 =0; nx_state2 Outp2 =0; nx_state2=one;End Case;End Process;Out2 Clk, Out1 = Out1, Out2 = Out2 ); - Clock process definitions Clk_process :process beginClk = 0;wait for Clk_period/2;Clk = 1;wait for Clk_period/2; end process; - Stimulus process stim_proc: process begin wait; end process;END;仿真波形实验过程分析:1、 不使用有限状态机下写程序。 A.需要分别对输入信号Clk的上升沿和下降沿分析。并对这些触发沿进行计数,根据所计数对信号进行 取反。 B.在仿真时遇到一个问题:输出信号初值的问题。最后发现在程序代码里给输出信号赋初值就可以有很 好的输出波形,仿真输出波形将无法预测。 2、 使用状态机下写程序。 A.对于输出Out1,全部都可在Clk上升沿处触发改变,所以涉及到状态机4个状态,一个状态机就可以解决。 B.对于输出Out2,波形比较复杂,不可以简单由一个状态机产生。采用使用状态机分别用Clk上升沿和下降沿产生两个中间信号,相“与”后于Out1相“或”,即可产生。实验心得总结:通过这次实验,进一步理解到各种数据类型的使用,波形

温馨提示

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

评论

0/150

提交评论