EDA七分频设计_第1页
EDA七分频设计_第2页
EDA七分频设计_第3页
EDA七分频设计_第4页
EDA七分频设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、基于VHDL的占空比50%的7分频电路设计一、 题目分析1. 七分频电路属于奇数分频较之偶数分频电路更难实现一点,由于知道奇数分频占空比不为50%的分频电路非常容易实现,于是希望能从此处入手获得奇数分频电路占空比为50%与非50%之间的关系,从而完成此类题目的设计。经分析知道两个占空比为3/7的七分频电路在初相位相差半个时钟周期的情况下进行或操作可获得题目要求的七分频电路。2. 占空比50%的分频电路与非50%的分频电路的真值关系如下表所示:Clk1010101010101010X10000000011111100X21000000001111110Yo1000000011111110 可见从

2、原理上满足要求。二、 用MAX+plusii编程开发实现 上述功能。1、 运行 MAX+plusii 进入编程开发环境,选择新建文件如下图并将文件保存为实体名的VHD文件: 2、 在程序文本编辑窗口编写程序,关键字以绿色字体呈现,编写程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT14 ISPORT(CLK:IN STD_LOGIC; K1,K2,Y:OUT STD_LOGIC);END;ARCHITECTURE bhf OF CNT14 IS SIGNAL C1,C

3、2:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M1,M2:STD_LOGIC; BEGINPROCESS(CLK,C1) BEGIN IF RISING_EDGE(CLK) THENIF(C1=110) THEN C1=000; ELSE C1=C1+1; END IF;IF(C1=001) THEN M1=NOT M1; ELSIF(C1=100) THEN M1=NOT M1; END IF; END IF; END PROCESS;PROCESS(CLK,C2) BEGINIF FALLING_EDGE(CLK) THEN IF(C2=110) THEN

4、C2=000; ELSE C2=C2+1; END IF; IF(C2=001) THEN M2=NOT M2; ELSIF(C2=100) THEN M2=NOT M2; END IF; END IF; END PROCESS; K1=M1; K2=M2; Y=M1 OR M2;END bhf;3、 将当前设计设置成工程,选择set Project to current file,如下图所示:4、 执行菜单栏中Assign Device,弹出窗口设置如下: 5、 调出编译器对程序进行编译,操作如下图所示:6、 在编译窗口执行如下图两项设置操作: 7、 点击start执行程序编译,编译顺利执行

5、,证明程序没有语法错误,结果如下图:8、 通过如下操作新建波形文件并保存文件: 9、 从SNF文件中输入设计文件的信号节点如下图所示: 10、 选中时钟信号该行呈黑色,并进行参数设置如下图:11、 点击菜单栏中MAX+plusii下拉菜单,选择simulator弹出仿真控制窗口,单击start进行波形仿真:12、 获得仿真波形如下图所示,可见波形除了在时间上有延时外符合分析要求:三、 程序分析。LIBRARY IEEE; -表示打开工作库IEEE库USE IEEE.STD_LOGIC_1164.ALL; -允许使用IEEE库中STD_LOGIC_1164程序包中的所有内容USE IEEE.ST

6、D_LOGIC_UNSIGNED.ALL; -允许使用IEEE库中STD_LOGIC_UNSIGNED程序包中的所有内容ENTITY CNT14 IS -定义-CNT14为实体名PORT(CLK:IN STD_LOGIC; K1,K2,Y:OUT STD_LOGIC); -定义CLK为输入端口的时钟信号,K1,K2,Y为输出端口信号,均为标准逻辑位数据类型END;ARCHITECTURE bhf OF CNT14 IS -定义bhf为结构体名 SIGNAL C1,C2:STD_LOGIC_VECTOR(2 DOWNTO 0); -表示在描述的器件CNT14内部定义标识符C1和C2的数据对象为信

7、号SIGNAL,其数据类型为STD_LOGIC_VECTOR,其位宽为3 SIGNAL M1,M2:STD_LOGIC; -表示在描述的器件CNT14内部定义标识符M1和M2的数据对象为信号SIGNAL BEGINPROCESS(CLK,C1) -敏感信号为CLK和C1 BEGIN IF RISING_EDGE(CLK) THENIF(C1=110) THEN C1=000; ELSE C1=C1+1; END IF;IF(C1=001) THEN M1=NOT M1; ELSIF(C1=100) THEN M1=NOT M1; END IF; END IF; END PROCESS;-以第一个上升沿开始产生占空比为3/7的方波信号;PROCESS(CLK,C2) BEGINIF FALLING_EDGE(CLK) THEN IF(C2=110) THEN C2=000; ELSE C2=C2+1; END IF; IF(C2=001) THEN M2=NOT M2; ELSIF(C2=100) THEN M2=NOT M2

温馨提示

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

评论

0/150

提交评论