多路波形发生器的设计.doc

上传人:scccc 文档编号:12057834 上传时间:2021-12-01 格式:DOC 页数:14 大小:295KB
返回 下载 相关 举报
多路波形发生器的设计.doc_第1页
第1页 / 共14页
多路波形发生器的设计.doc_第2页
第2页 / 共14页
多路波形发生器的设计.doc_第3页
第3页 / 共14页
多路波形发生器的设计.doc_第4页
第4页 / 共14页
多路波形发生器的设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《多路波形发生器的设计.doc》由会员分享,可在线阅读,更多相关《多路波形发生器的设计.doc(14页珍藏版)》请在三一文库上搜索。

1、北京交通大学电工电子教学基地实验报告实验课程: EDA技术 实验名称: 多路波形发生器的设计 实验台:1号 班级:四班 学号:08291123 姓名:游振南实验日期:2010年10月24日 成绩: 推荐精选一·实验内容及其目的:1 熟悉多路发生器的原理还有输出相位差和占空比的原理。2 熟练用QUARTERII进行电路的编程和仿真。3 熟练使用IF语句。二·实验设计思路.1。多路发生器的原理用分频器而且是可调的因此先设div:integer range 1 to 4;。通过信号赋值(tmp,tmp1,tmp2)赋给输出信号A,B,C. 通过n改变输出频率。定义各个变量。2.。

2、当resetb=0时,countQ=0;当resetb=1时。给脉冲时先定义分频比如果countQ < (6*div-1)时countQ <= countQ +1;否者countQ为0。4 当cltr=01时即H:L=1:1时 如果countQ < 3*div时tmp<=0;否者tmp<=1 如果countQ < 2*div or countQ>(6*div-2)时tmp1<= '1'否者 tmp1<='0' 如果countQ < div or countQ>(4*div-1)时tmp2<=

3、 '0' 否者 tmp2<='1' A等于tmp;B=tmp2;C=tmp3;同理:当cltr=10时即H:L=1:2时 当cltr=11时即H:L=2:1时。推荐精选其中;公式推导如下:当div=1,cltr=01时 当div=2,cltr=01时 countQ<6 countQ<12A:0 0 0 1 1 1; A:0 0 0 0 0 0 1 1 1 1 1 1B:1 1 0 0 0 1; B:1 1 1 1 0 0 0 0 0 0 1 1C:0 1 1 1 0 0; C:0 0 1 1 1 1 1 1 0 0 0 0A:countQ<

4、;3时tmp=0 A;countQ<6时tmp=0Else tmp=1 Else tmp=1B:countQ<2 or countQ>4时tmp=1 B:countQ<4or countQ>10 ,tmp=1 Else tmp=0 Else tmp=0C:countQ<1 or countQ>3时tmp=0 C: countQ<2 or countQ>7时tmp=0Else tmp=1 Else tmp=1同理:cltr=10,cltr=11.当cltr=01时if(countQ < 3*div) then tmp<= '

5、;0'else tmp<='1'if(countQ < 2*div or countQ>(6*div-2) then tmp1<= '1'else tmp1<='0'if(countQ < div or countQ>(4*div-1) then tmp2<= '0'else tmp2<='1'当cltr=10时if(countQ < 4*div) then tmp<= '0'else tmp<='1'i

6、f(countQ < 2*div ) then tmp1<= '1'else tmp1<='0'推荐精选if(countQ < 2*div or countQ>(4*div-1) then tmp2<= '0' else tmp2<='1'当cltr=11时if(countQ < 2*div) then tmp<= '0'else tmp<='1'if(countQ < 2*div or countQ>(4*div-1) the

7、n tmp1<= '1'else tmp1<='0'if(countQ < 4*div ) then tmp2<= '1'else tmp2<='0'将信号tmp 赋给A ; tmp1 赋给B ; tmp2 赋给 C ;三·流程图:推荐精选四·程序及仿真波形:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity boxi

8、ng isport(clk,resetb: in std_logic;cltr:in std_logic_vector(1 downto 0);div:integer range 1 to 4;A,B,C:out std_logic);end boxing;architecture a of boxing issignal countQ: integer range 0 to 255;signal tmp:std_logic;signal tmp1:std_logic;signal tmp2:std_logic;begin process(clk,resetb) begin if clk

9、9;event and clk='1' then 推荐精选 if (resetb='0') then countQ<=0; else if( countQ < (6*div-1) then countQ <= countQ +1; else countQ <=0; end if; end if; end if; end process;process(cltr,countQ)beginif(cltr=01) then if(countQ < 3*div) then tmp<= '0'else tmp<=&

10、#39;1'end if;if(countQ < 2*div or countQ>(6*div-2) then tmp1<= '1'else tmp1<='0'end if;if(countQ < div or countQ>(4*div-1) then 推荐精选tmp2<= '0'else tmp2<='1'end if;end if;if(cltr=10) thenif(countQ < 4*div) then tmp<= '0'else tm

11、p<='1'end if;if(countQ < 2*div ) then tmp1<= '1'else tmp1<='0'end if;if(countQ < 2*div or countQ>(4*div-1) then tmp2<= '0'else tmp2<='1'end if;end if;if(cltr=11) thenif(countQ < 2*div) then tmp<= '0'else tmp<='1'

12、;推荐精选end if;if(countQ < 2*div or countQ>(4*div-1) then tmp1<= '1'else tmp1<='0'end if;if(countQ < 4*div ) then tmp2<= '1'else tmp2<='0'end if;end if;end process;A<=tmp;B<=tmp1;C<=tmp2;end a;仿真图:div=1,cltr=01时推荐精选div=1,cltr=10div=1,cltr=11

13、div=2,cltr=01div=2,cltr=10推荐精选div=2,cltr=11div=3,cltr=01div=3,cltr=10div=3,cltr=11推荐精选div=4,cltr=01div=4,cltr=10div=4,cltr=11推荐精选五·实验中遇到的问题及解决步骤1. 定义div为变量?div:integer range 1 to 42占空比原理?通过网络查找相关定义和通过网络和图书馆查找6分频分频器汇编中设定占空比推出相关频率的占空比。3通过控制div(14)改变输出相应得分频?开始时只能编写6分频的分频器无法通过改变div改变输出频率。通过助教老师的讲解通

14、过设置div为变量把六分频分频器中的公式变换即可。4A,B,C,输出三路相位差120的意思?通过网上查找A,B,C 输出三路占空比一样延迟2/3T(T:分频后的周期)。5Process()中应该填写什么?开始时不知道填写什么。后来通过看书中的程序知道里面填写的是要输入的信号。推荐精选.6A,B,C通过什么控制三路相差120度?首先想到通过控制时间延迟为20ns和40ns发现如果clk一个脉冲时间变化就会导致波形不一样而且分频不一样导致延迟时间不一样。然后想到通过一个一个的把波形用高低电平。通过给一个脉冲,控制cltr,div观察输出A,B,C的电平可是编写这样太麻烦了。后来通过观察A,B,C每一个脉冲的输出电平找出其规律通过公式编写从而使汇编变得简单些。 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1