异步十二进制加减计数器 课程设计报告.doc_第1页
异步十二进制加减计数器 课程设计报告.doc_第2页
异步十二进制加减计数器 课程设计报告.doc_第3页
异步十二进制加减计数器 课程设计报告.doc_第4页
异步十二进制加减计数器 课程设计报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

集成电路课设报告VHDL语言描述能力强,覆盖面广,抽象能力强,所以用VHDL语言作为硬件模型建模很合适。设计者的原始描述是非常简练的硬件描述,经过EDA工具综合处理,最终生成付诸生产的电路描述或版图参数描述的工艺文件。整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。VHDL语言可读性好。VHDL既能被人容易读懂又能被计算机识别,作为技术人员编写的原文件,既是计算机程序、技术文档和技术人员硬件信息交流文件,又是签约双方的合同文件。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用别人的设计提供了设计手段。重复利用他人的IP模块和软核是VHDL的特色,许多设计不必个个都从头再来,只要在更高层次上IP模块利用起来,就能达到事半功倍的效果。本实验就是用VHDL语言设计一个异步十二进制加减计数器。一、题目:异步十二进制加减计数器二、电路工作原理所谓计数器就是指能够记忆时钟信号脉冲个数的时序逻辑电路,它是数字电路中应用及其广泛的一种基本逻辑单元,不仅能用于脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。其原理就是将几个触发器按照一定的顺序连接起来,然后根据触发器的状态按照一定的规律随时钟信号的变化来记忆时钟的个数。1、同步计数器和异步计数器名称时钟提供功能实现过程缺点优点异步计数器往往高位触发器的时钟信号由低位触发器的输出提供在低位触发器翻转后高位触发器才能翻转计数速度比较慢。由于各触发器输出存在偏移,对各触发器的输出的译码输出会出现尖峰信号结构简单,所用元件较少同步计数器同一脉冲提供各触发器同时翻转。其最高工作频率只和触发器传输延迟以及有关控制门传输延迟之和有关其工作频率比异步计数器要高。由于采用同一脉冲控制,可有效减小译码后产生的尖峰信号宽度结构比较复杂,所用元件较多根据计数器脉冲引入方式的不同,计数器分为同步计数器和异步计数器两大类。(功能比较如下表所示)其中同步计数器是将计数脉冲同时引入到各级触发器,当输入计数时钟脉冲触发时,各级触发器的状态同时发生转移,而异步计数器是将计数器的低位计数触发器的输出作为相邻计数触发器的时钟脉冲,这样逐级串行连接起来的一类计数器。也就是说,每一个触发器的翻转时刻并不是由时钟信号来同步的,而是由它下一位触发器的输出决定的。2、置“0”方式异步置“0”和同步置“0”异步置“0”方式:其置零信号Rd是经缓冲门直接加在触发器的R端的。同步置“0”方式:当置“0”信号到达时,计数器并不立即置“0”,而是在有CP脉冲上升沿到来时,电路才被置零。可逆计数器就是指在输入时钟信号脉冲的控制下,既可以进行递增计数也可以进行递减计数的一类特殊计数器。对于具体的可你计数器来说,需要定义一个用来控制计数器方向的控制端口updown:当控制端口updown的值为逻辑1时,可逆计数器进行加1操作,即递增计数,当控制端口updown的值为逻辑0时,可逆计数器进行减1操作,即递减计数。 可逆计数器真值表: Rd(Clr) UPDOWN CP(Clk) Q0Q3 0 X X 0000 1 1 下降沿 加1操作 1 0 下降沿 减1操作通过上述分析就可以明确地了解:程序1是异步置0的同步可逆计数器程序2是由低位触发器的输出提供高位触发器的时钟信号的,从而实现了异步加减计数。三、VHDL设计思路与程序(一)程序11、VHDL设计思路设计中,CP是时钟输入端,下降沿有效;Rd为清零控制端,低电平有效;updown为计数方式控制端,updown=“1”时作加法计数,updown=“0”时作减法计数。在计数工作之前,先由Rd给一个清零信号,使四个数据输入值都为“0”。y3,y2,y1,y0为四个数据输出端,这就实现了异步清零。当updown=“1”,Rd=“1”时,计数器进行加法计数,即从“0000”依次计数到“1011”,当updown=“0”,Rd=“1”时,计数器进行减法计数。 2、源程序及注释library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yu is 实体说明port (cp,rd,updown:in std_logic; 定义端口 q:out std_logic_vector(3 downto 0);end yu;architecture yu of yu is 结构体signal y:std_logic_vector(3 downto 0); 定义信号beginprocess (cp,rd) 进程开始beginif rd=0then 清零y=0000;elseif (cpevent and cp=0)then 时钟信号为下降沿时 if (updown=1)then 进行加法计数 if y=1011then 到11有进位,清零 y=0000; else y=y+1; 结果加1 end if; else 否则进行减法计数 if y=0000then 到0有借位 y=1011;else y=y-1; 结果减1end if; end if;end if;end if;end process; 进程结束q=y; 输出结果end yu; 程序结束(二)程序21、VHDL设计思路设计中,clk是时钟输入端,上升沿有效; updn为计数方式控制端,updn=“1”时作加法计数,updn=“0”时作减法计数;c是进位/借位输出端;c0为个位最高位输出。在计数工作之前,个位q和十位k全部置0。个位由时钟上升沿触发加/减1,十位由个位的进位/借位触发,从而实现十位的变化,即异步可逆计数。当updown=“1”时,计数器进行加法计数,个位从“0”依次计数到“9”,进位,十位由“0”到“1”,当计数到11时清零;同理,当updown=“0”时,计数器进行减法计数。2、源程序及注释library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yu1 isport (clk,updn:in std_logic; c:out std_logic; y0,y1:out std_logic_vector(3 downto 0);end yu1;architecture yu1 of yu1 issignal q:std_logic_vector(3 downto 0):=0000; 个位 q 赋初值为0signal k:std_logic_vector(3 downto 0):=0000; 十位 k 赋初值为0signal c0,c1:std_logic;begin process (updn,clk) 个位的进程 begin if updn=1then 进行加法计数 if q=1 and k=1 then 到11时,有进位输出信号C1 c1=1; else c1=0; end if; if clkevent and clk=1then 时钟端为上升沿时 if c1=1or q=9 then 有进位输出信号C1,即到11时q=0000; 或个位到9该进位时,个位清零else q=q+1; 个位加1 end if; end if; else 进行减法计数 if clkevent and clk=1then if q=0 and k=0 then 到0时 c1=1; 有借位输出信号,输出11 q=0001; 即个位 q 置1 elsif q=0 and k=1 then 到10,减1,个位输出9 q=1001; c1=0; elseq=q-1; c1=0; end if; end if; end if; y0=q; 个位输出 c0=q(3); 个位最高位输出 end process; process (c0,c1) 十位的进程 begin if updn=1then if c1event and c1=0then k=0000;elsif c0event and c0=0then 个位由9加1进位,变为0时 k=0001; 十位k置1 end if;else if c1=1then k=0001;elsif c0event and c0=1then 个位由0减1到借位,变为9时 k=0000; 十位k置0end if; end if; end process; y1=k; c=c1;end yu1;四、仿真验证程序与仿真结果(一)测试程序11、仿真验证程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t_yu isend t_yu;architecture t_yu of t_yu iscomponent yu isport (cp,rd,updown:in std_logic; q:out std_logic_vector(3 downto 0);end component;signal cp:std_logic:=0;signal rd:std_logic;signal updown:std_logic;signal q:std_logic_vector(3 downto 0);beginu0:yu port map (cp,rd,updown,q);cp=not cp after 50ns;rd=0,1after 300ns;updown=0,1after 200ns,0after 1600ns;end t_yu;2、仿真结果:下图所示为异步十二进制加减计数器的波形图:(二)测试程序21、仿真验证程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t_yu1 isend t_yu1;architecture t_yu1 of t_yu1 iscomponent yu1 isport (clk,updn:in std_logic; c:out std_logic; y0,y1:out std_logic_vector(3 downto 0);end component;signal clk:std_logic:=0;signal updn:std_logic;signal c:std_logic;signal y0:std_logic_vector(3 downto 0);signal y1:std_logic_vector(3 downto 0);beginu0:yu1 port map (clk,updn,c,y0,y1);clk=not clk after 50ns;updn=1,0after 2000ns;end t_yu1;2、仿真结果:下图所示为异步十二进制加减计数器的波形图:五、逻辑综合逻辑综合,就是将较高抽象层次的描述自动的转换到较低抽象层次描述的一种方法,就现有技术而言,就是将RTL级也就是行为级的描述转换成门级网表的过程。其输入为RTL级描述程序,约束条件,支持工艺库等,输出是门级网表或电路图。1、所用工具:Synplify Pro 7.12、综合结果及分析编写完程序成后,用synoplify软件进行逻辑综合,先加载子程序再加载主程序进行逻辑综合后得出电路图。综合结果电路图:综合结果电路图比想象中的电路图要复杂很多,多处与非门的应用使电路功能与设计要求相符。synoplify软件逻辑综合完后,还可观察一些元件的内部结构电路图,三个D触发器的内部都可以显示。以下是它们的内部结构电路图(由于完全相同,只给出了其中一个的内部电路图):下表为同步D触发器功能表:Rd非Sd非CPDQQ非01XX0110XX1011上升00 111上升110由上表所知,当CP处于上升沿时,D触发器发生状态转移变化。D触发器逻辑图如下图(a)所示。它由六个“与非”门组成,其中G1,G2组成基本触发器,G3,G4组成时钟控制电路,G5,G6组成数据输入电路。 如上图所示,D触发器具有在时钟脉冲上升沿触发的特点,其逻辑功能为:输出端Q的状态随着输入端D的状态而变化,但总比输入端状态的变化晚一步,即某个时钟脉冲来到之后Q的状态和该脉冲来到之前D的状态一样。其图形符号,状态表和工作波形图如上图(b),(c)和(d)所示。为了与下降沿触发相区别,在图形符号中时钟脉冲C输入端靠近方框处不加小圆圈。在对D触发器的工作原理进行回忆性了解后,可以知道应用四个带有置数端的D触发器可以实现最多十六进制计数器(JK触发器也可)。所以得出结论:最终的电路主体应该是由四个触发器构成的,与所得到的电路图相符。六、收获体会这次课设已经结束,通过这次课程设计,我学到了许多新的知识,其中对VHDL设计有了一定的初步认识。VHDL语言作为一种标准的硬件描述语言,具有结构严谨,描述力强的特点,其语法结构以严谨著称,适合于复杂逻辑电路的设计。由于VHDL语言来源于计算机高级语言,所以在VHDL语言中保留了部分高级语言的原语句,如if语句,子程序和函数等,便于阅读和应用。从这次集成电路课程设计中我对VLSI也有了一个感性的认识,初步掌握了EDA的设计思路和设计流程。本次课设使用的EDA工具主要是中国华大集成电路设计公司开发的Zeni系统,该系统是

温馨提示

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

评论

0/150

提交评论