- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
蜗牛的染色体学院
电子设计自动化实验报告
姓 名:吃一口羊羔肉学 号:一口吃羊羔肉班 级:吃羊羔肉一口实验内容:多路波形发生器指导教师:羊羔肉吃一口报告日期:
多路波形发生器实验
实验要求
对输入时钟信号进行分频,实现三路互差120度的信号。
实现输出信号的占空比例控制。其中
clk :输入时钟信号;reset:同步复位信号(低电平有效);div :输入分频控制信号(6n分频);ctrl:占空比例控制信号,其中
当ctrl=1时,占空比为1:1;当ctrl=2时,占空比为1:2;当ctrl=3时,占空比为2:1;
A,B,C:三路输出信号。
设计思路
2.1clk :时钟输入,设置为上升沿触发;
reset:题目要求同步复位,故应将时钟输入作为reset触发的必要条件。
div :题目要求为6分频,用二进制表示为
(110)
(1100)
2,
(100100)
2, 2
以此类推。当temp计
数是遇到上述数字便清零重新技术以实现6n分频。
2.4.ctrl:占空比为三种,分别用(01),(10),(11)
2 2
表示。然后用temp中3位0和1的个数比例
2
来控制占空比。占空比=1的个数/(0的个数+1的个数)
又因为题目要求相位角互差120度,即三个输出依次领先前一位4个输入字符。即若A(0)=1,则B(4)=1,C(8)=1。A(0)B(4)C(8)为同相位。
2.5.temp:声明三个变量,其中
temp为三位,分别对应于A,B,C。用于输出。temp2与temp3用于计数分频。
程序流程图
是
时钟存在且出现高电平
否
Temp3+1
Reset是否为零
否
是
Temp=000
判断分频比DIV
DIV=0 1分频,temp3在外层
DIV=1
6分频,temp3在内层
占空比1:1
占空比1:2
Ctrl=01
Ctrl=10
判断ctrl
占空比2:1
直接给0
Ctrl=11Ctrl=00
源程序一
libraryieee;
useieee.std_logic_1164.all;useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityzongheisport
(
clk:instd_logic;aclk:outstd_logic;bclk:outstd_logic;cclk:outstd_logic;resetb:instd_logic;
div:instd_logic_vector(1downto0);ctrl:instd_logic_vector(1downto0)
);
endzonghe;
architecturebehaveofzongheissignaltmp:std_logic;
signaltmp1:std_logic;signaltmp2:std_logic;
signal
cnt0:integer
range
0
to
5:=0;
signal
cnt1:integer
range
0
to
11:=0;
signal
cnt2:integer
range
0
to
17:=0;
signal
cnt3:integer
range
0
to
23:=0;
begin
process(clk,resetb,div,ctrl)begin
if clkeventandclk=1thenifresetb=0then
cnt0=0;cnt1=0;cnt2=0;cnt3=0;tmp=0;tmp1=0;tmp2=0;
elsifresetb=1thencnt0=cnt0+1;cnt1=cnt1+1;cnt2=cnt2+1;cnt3=cnt3+1;
casectrlis
when01=casediviswhen00=
casecnt0is
when0=tmp=0;tmp1=1;tmp2=0;when1=tmp=0;tmp1=1;tmp2=1;when2=tmp=0;tmp1=0;tmp2=1;when3=tmp=1;tmp1=0;tmp2=1;when4=tmp=1;tmp1=0;tmp2=0;when
5=tmp=1;tmp1=1;tmp2=0;cnt0=0;endcase;
when01=casecnt1is
when0=tmp=0;tmp1=1;tmp2=0;when1=tmp=0;tmp1=1;t
文档评论(0)