基于FPGA的多种形式分频器设计与实现.doc_第1页
基于FPGA的多种形式分频器设计与实现.doc_第2页
基于FPGA的多种形式分频器设计与实现.doc_第3页
基于FPGA的多种形式分频器设计与实现.doc_第4页
基于FPGA的多种形式分频器设计与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

扬州大学本科生毕业设计(论文)基于FPGA的多种形式分频器设计与实现摘要FPGA(现场可编程门阵列),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。本文通过VHDL语言编程在FPGA上实现多种形式的分频器的设计。包括偶数分频,奇数分频,半整数分频,占空比可调分频,小数分频,并在这基础上实现了五种分频的集成。并举例说明了分频器的应用。关键词:FPGA,VHDL,分频器设计;the design and implement of various forms of points on the frequency based on FPFAAbstractFPGA(Field Programmable Gata Array),it is the future development product based on programmable devices, such as PAL,GAL,CPLD and so on. It is half a custom circuit in the field of ASIC. It not only solves the shortage of custom circuit, but also overcomes the limited defect of the existing programmable device gate circuit. This article realize the design and implement of various forms of points on the frequency through VHDL language.It Includes the even points frequency, an odd points frequency, half integer points frequency, occupies emptiescompared adjustable points frequency, decimal points frequency, And achieves the integration of five points frequency on this basis.It also illustrates the application of frequency device.目 录第一章 绪论1第一节 FPGA概述1第二节 VHDL语言的概述1第三节 分频器的概述2第四节 本文研究内容2第二章 VHDL语言3第一节 VHDL语言结构3一、实体(ENTITY)3二、结构体(ARCHITECTURE)3三、程序包、库及配置4第二节 VHDL的数据类型与描述语言4一、VHDL语言的对象4二、VHDL语言的主要描述语句5第三章 多种形式分频器设计6第一节 设计任务6一、设计的任务6第二节 系统设计与仿真6一、顶层框图设计6二、顶层文件设计7三、模块设计8第三节 分频器的应用34结 论35谢 辞36参考资料37第一章 绪论第一节 FPGA概述FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块案,:FPGA芯片主 要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。FPGA的基本特点有:l 采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。l FPGA可做其它全定制或半定制ASIC电路的中试样片。l FPGA内部有丰富的触发器和IO引脚。l FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。l FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPFA的主要生产商有:Altera ,Xilinx ,Actel ,Lattice 。其中Altera作为世界老牌可编程逻辑器件的厂家,是当前世界范围内市场占有率最大的厂家,它和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。第二节 VHDL语言的概述目前最通用的硬件描述语言有VHDL与Verilog两种。1982年美国国防部的一个分支专案要求所有的数字电路必须用VHDL语言设计。1983年IBM及IT等公司在此专案规划下,开始开发VHDL(VLSI HDL)。随后IEEE也认可此成果为1076号IEEE标准(1987),1993年有修订为93年版IEEE 1076号标准。后来将一种可配合集成工具的VHDL程序包(Package),特别命名IEEE 1076.3,并成为1076号IEEE标准的一部分。最近,新标准包IEEE 1076.4(VITAL)被开发出来,成为建立ASIC及FPGA的模型函数库。VHDL的设计层面可以划分为系统层(System),算法层(Algorithm),寄存器传输层(Register-Transfer),逻辑层(Logic)以及电路层(Circuit)。第三节 分频器的概述在日常的生活中,很多地方要用到分频,最近比较流行的变频空调,矢量变频冰箱等,都要用到分频,分频的形式可以有很多种,可以是偶数分频,奇数分频,小数分频根据不同的要求,设计出不同的分频电路来满足设计的需要。第四节 本文研究内容一、用VHDL语言来描述多种形式的分频器设计。二、学会使用Quartus II软件,并仿真出波形,最后进行分析。第二章 VHDL语言第一节 VHDL语言结构一个完整的VHDL语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、程序包(Package)和库(Library)5个部分。前4个部分是可分别编译的源设计单元。实体用于描述所设计的系统的外接口信号;构造体用于描述系统内部的结构和行为;程序包存放各种设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来组成系统设计的不同版本;库存放已经编译的实体、构造体、程序包和配置。库可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。一、实体(ENTITY)在VHDL中,实体类似于原理图中的一个部件符号,它可以代表整个系统、1块电路板、一个芯片或一个门电路,是一个初级设计单元。在实体中,我们可以定义设计单元的输入输出引脚和器件的参数,其具体的格式如下:ENTITY 实体名 IS 类属参数说明; 端口说明;END 实体名;二、结构体(ARCHITECTURE)结构体描述一个设计的结构或行为,把一个设计的输入和输出之间的关系建立起来。一个设计实体可以有多个结构体,每个结构体对应着实体不同的实现方案,各个结构的地位是同等的。结构体对其基本设计单元的输入输出关系可以用三种方式进行描述,即行为描述、寄存器传输描述和结构描述。不同的描述方式,只是体现在描述语句的不同上,而结构体的结构是完全一样的。结构体分为两部分:结构说明部分和结构语句部分,其具体的描述格式为:ARCHITECTURE 结构体名 OF 实体名 IS -说明语句 BEGIN -并行语句END 结构体名;三、程序包、库及配置库和程序包是VHDL的设计共享资源,一些共用的、经过验证的模块放在程序包中,实现代码重用。一个或多个程序包可以预编译到一个库中,使用起来更为方便。(一)库(LIBRARY)库是经编译后的数据的集合,用来存放程序包定义、实体定义、结构体定义和配置定义,使设计者可以共享已经编译过的设计结果。在VHDL语言中,库的说明总是放自在设计单元的最前面:LIBRARY 库名;这样一来,在设计单元内的语句就可以使用库中的数据。VHDL语言允许存在多个不同的库,但各个库之间是彼此独立的,不能互相嵌套。(二)程序包(PACKAGE)程序包说明象C语言中的include语句一样,用来罗列VHDL语言中所要用到的常数定义、数据类型、函数定义等,是一个可编译的设计单元,也是库结构中的一个层次。要使用程序包时可用USE语句说明,例如:USE IEEE.STD_LOGIC_1164.ALL; 程序包由标题和包体两部分组成,其结构如下:标题部分 PACKAGE 程序包名 IS - 说明语句 END 程序包名包体部分 PACKAGE BODY 程序包名 IS - 说明语句第二节 VHDL的数据类型与描述语言一、VHDL语言的对象VHDL语言中可以赋值的对象有3种:信号(Signal)、变量(Variable)、常数(Constant)。在数字电路设计中,这3种对象通常都具有一定的物理意义。例如,信号对应地代表电路设计中的某一条硬件连线;常数对应地代表数字电路中的电源和地等。当然,变量对应关系不太直接,通常只代表暂存某些值的载体。3类对象的含义和说明场合如表所示。对象类别含 义说 明 场 合信 号 信号说明全局量 Architecture, package, entity变 量 变量说明局部量 Process, function, procedure常 数 常数说明全局量 上面两种场合下,均可存在二、VHDL语言的主要描述语句在用VHDL语言描述系统的硬件行为时,按语句执行的顺序可分为顺序语句和并行语句。顺序语句主要用来实现模型的算法部分;而并行语句则基本上用来表示黑盒的连接关系。黑盒中所包含的内容可以是算法描述或一些相互连接的黑盒。第三章 多种形式分频器设计第一节 设计任务一、设计的任务本设计的任务是:把偶数分频,奇数分频,半整数分频,占空比可调的分频,小数分频这5种比较常见的分频器集成在一块芯片之上,并可以通过按钮来选择具体由哪一种分频器进行操作,而拨码开关则可以预置一些分频系数,发光二极管则显示具体由那种分频实现,数码管显示分频的系数。具体功能如下:(1)p,q,v:功能选择按钮。f1,f2,f3,f4,f5:表明功能的序号。P=0,q=0 ,v =0 :偶数分频,f1=1,f2=f3=f4=f5=0;P=0,q=0,v =1 :奇数分频,f2=1,f1=f3=f4=f5=0;P=0,q=1 ,v =0:半整数分频,f3=1,f1=f2=f4=f5=0;P=0,q=1 ,v =1:可预置占空比分频,f4=1,f1=f2=f3=f5=0;P=1,q=0 ,v =0:小数分频,f5=1,f1=f2=f3= f4=0;(2)clk:时钟信号。Rst:复位信号。 (3) a,b,c,d:表明分频系数 偶数分频:2,4,6,8,10,12,14,奇数分频:1,3,5,7,9,11,13,15半整数分频:1.515.5占空比分频:1:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3小数分频:1.13.3(4)y:输出信号。 y5:段选择信号。 y6:位选择信号。(5)y6=fb 选中第三个数码管y6=fd 选中第二个数码管y6=fe选中第一个数码管,数码管显示分频系数。第二节 系统设计与仿真一、 顶层框图设计图3-1 顶层框图设计原理图该顶层框图主要由六个部分组成:选择按钮,拨码开关,二极管,分频器种类选择,信号输出。各部分的功能如下:选择按钮:设置输入的方式,选择需要实现何种分频。拨码开关:提供分频的系数。发光二极管:显示第几种分频被选择。FPGA:根据前面的输入来确定何种分频器进行工作。数码管:显示分频系数。信号输出:把分频后的信号进行输出。二、顶层文件设计分频器的顶层文件是一个原理图文件,它包含8个模块8个模块encoder-35模块,led模块,fenpin-e模块,fenpin-o模块,fenpin-m模块,fenpin-h模块,fenpin-x模块,mux51模块。模块的正确性已在上面的介绍中进行验证了。通过将各个模块用具有电气性质的导线将各个模块连接起来,这样原理图文件就建好了。保存编译。在建立一个.vwf波形文件,保存并仿真。原理图如图3-2所示,以8分频为例子进行仿真,其仿真结果如图3-3所示图3-2 顶层文件设计原理图图3-3 顶层文件波形仿真结果图P=0,q=0 ,v =0:偶数分频,f1=1(表明第一个发光二极管亮),f2=f3=f4=f5=0;Rst=0时,不分频。Rst=1时:当y5=99时,数码管1显示4。当y5=ff时,数码管2不显示。当y5=c0时,数码管3显示0。最终结果为:三个数码管显示为:0,不显示,4。三、模块设计(一)偶数分频模块的设计:偶数分频模块根据拨码开关选择分频系数(count),对输入的clk信号进行偶数分频。本设计偶数分频的关键是对clk信号的上升信号进行计数(temp)。当temp小于count/2时clout输出1,否则输出0,从而实现偶数分频。只有当35译码器的输出选中偶数分频且rst=1时偶数分频才工作。偶数分频实现的程序如下:library ieee;use ieee.std_logic_1164.all;entity fenpin_e isport ( clkin,rst:in std_logic; a,b,c,d:in integer range 1 downto 0; sel:in std_logic; clkout:out std_logic );end fenpin_e;architecture rtl of fenpin_e issignal temp:integer range 16 downto 0;signal count:integer range 16 downto 0; begincount=8*d+4*c+2*b;process(clkin)beginif rst=1 thenif(sel=1) then if (clkin event and clkin = 1) thenif temp = count-1 thentemp = 0;elsetemp = temp + 1;end if;end if; else null;end if;elsenull;end if;end process;process(temp)beginif rst=1 thenif(sel=1) then if temp count/2 thenclout = 1;else clout = 0;end if; else null;end if;elseclout = 0;end if;end process;end rtl;偶数分频(4分频)模块程序仿真结果如图3-4所示:图3-4 偶数分频从仿真结果可以看出:本设计的优点是:当rst=0,sel=0时,输出信号为低电平;当rst或者sel中有一个为低电平时,计数器停止计数,但保持上一状态继续输出,当恢复rst=1,sel=1时继续计数,执行分频。本设计的缺点是:保持上已状态输出时,有时会是低电平,有时会有高电平,但不影响分频的需要。(二)奇数分频模块的设计:奇数分频模块根据拨码开关选择分频系数(count1),对输入的clk信号进行偶数分频。本设计奇数分频的关键是对clk信号的上升沿信号进行计数(p)和对clk信号的下降沿信号进行计数(q)。当p (count1-1)/2 或者 q(count1-1)/2时 clout输出1,否则输出0,从而实现奇数分频。只有当35译码器的输出选中偶数分频且rst=1时奇数分频才工作。奇数分频实现的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin_o isport( clk,rst:in std_logic; sel:in std_logic; a2,b2,c2,d2:in integer range 1 downto 0; clkout1:out std_logic );end fenpin_o;architecture rtl of fenpin_o issignal p,q ,count1:integer range 18 downto 0;begincount1=8*d2+4*c2+2*b2+1*a2;process(clk)beginif rst=1 thenif(sel=1) then if (clkevent and clk = 1 ) thenif p=count1-1 thenp=0;else p=p+1;end if;end if; else null;end if;elsep=count1-1;end if;end process;process(clk)beginif rst=1 thenif(sel=1) then if (clk event and clk = 0 ) thenif q=count1-1 thenq=0;else q=q+1;end if;end if; else null;end if;elseq=count1-1;end if;end process;clkout1 = 1 when p (count1-1)/2 or q(count1-1)/2 else 0;end rtl;奇数分频(7分频)模块程序仿真结果如图3-5所示:图3-5 奇数分频从仿真结果可以看出:这种设计的优点是:当rst与sel当中任一一个为0时,即放弃对本次的计数并保持输出为低电平,在下一次rst与sel都等于1时,重新开始计数,执行分频。这种设计的缺点是:放弃到本次的计数会造成一定时间的浪费,但对功能的实现几乎没有影响。(三)半整数分频模块的设计:半整数分频模块根据拨码开关选择分频系数(count1),对输入的clk信号进行偶数分频。本设计偶数分频的思想如图3-6所示:图3-6 半整数分频原理图只有当35译码器的输出选中偶数分频且rst=1时半整数分频才工作。半整数分频实现的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;use ieee.std_logic_unsigned.all;entity fenpin_m isport( clkin,rst:in std_logic; sel:in std_logic; a3,b3,c3,d3:in integer range 1 downto 0; clkout3:buffer std_logic );end fenpin_m;architecture rtl of fenpin_m is signal clk, div2:std_logic;signal count:integer range 0 to 16 ;signal set:integer range 16 downto 0 ;beginset=8*d3+4*c3+2*b3+1*a3;clk = clkin xor div2; process(clk)beginif rst=1 thenif sel=1 thenif (clk event and clk = 1) thenif (count = 0 ) then count = set-1; clkout3 = 1;elsecount = count - 1; clkout3 = 0;end if;end if; else count=1;end if;elsenull;end if;end process;process(clkout3)beginif sel=1 thenif (clkout3event and clkout3=1) thendiv2 = not div2; end if; else null;end if;end process;end rtl;半整数分频(6.5分频)模块程序仿真结果如图3-7所示:图3-7 半整数分频从仿真结果可以看出:本设计的优点是:在rst或者sel有一个为低电平时,计数器停止计数,维持上一状态输出,当rst和sel都为高电平的时,重新开始计数,执行分频。本设计的缺点是:在rst或者sel有一个为低电平时,要过一段时间才可以重新开始计数,执行分频,造成一定时间的浪费,但影响不是很大。(四)占空比可调的分频模块的设计:占空比可调的分频模块根据拨码开关选择占空比(m1:n1),对输入的clk信号进行占空比可调的分频。本设计占空比可调的分频的关键是对clk信号的上升沿信号进行计数temp。当temp m1时 clkout2输出1,否则输出0,从而实现占空比可调的分频。只有当35译码器的输出选中偶数分频且rst=1时占空比可调的分频才工作。占空比可调的分频实现的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.numeric_std.all;use ieee.std_logic_unsigned.all;entity fenpin_h isport( clk,rst:in std_logic; sel:in std_logic; a4,b4,c4,d4:in integer range 1 downto 0; clkout2:out std_logic );end fenpin_h;architecture rtl of fenpin_h issignal temp,m1,n1:integer range 5 downto 0;beginm1=2*d4+1*c4;n1=2*b4+1*a4;process(clk,temp,sel)beginif rst=1 thenif sel = 1 thenif rising_edge(clk) thenif temp = n1 -1 thentemp = 0;else temp = temp +1;end if;end if;else null;end if;elsetemp=n1-1;end if;end process;clkout2 = 1 when temp m1 else 0;end rtl;占空比可调的分频(1:3分频)模块程序仿真结果如图3-8所示:图3-8 占空比可调分频从仿真结果可以看出:这种设计的优点是:在rst或者sel有一个为低电平时,可以保持前一状态和计数结果,使其具有记忆功能。在恢复工作时,继续计数,具有有良好的性能。这种设计的缺点是:在rst或者sel有一个为低电平时,有时会有高电平,有时会有低电平.(五)小数分频模块的设计:小数分频模块根据拨码开关选择分频系数(n.x),对输入的clk信号进行小数分频。本设计小数分频的关键是实现(10-x)次n分频和x次的n+1分频的交替进行,从而实现小数的分频。只有当35译码器的输出选中偶数分频且rst=1时占空比可调的分频才工作。小数分频实现的程序如下:library ieee;use ieee.std_logic_1164. all;use ieee.std_logic_unsigned. all;entity fenpin_x isport(clkin: in std_logic;rst:in std_logic;sel1:in std_logic;a,b,c,d:in integer range 1 downto 0;clk_out:out std_logic);end fenpin_x;architecture arch of fenpin_x iscomponent numberport(n : in std_logic_vector(3 downto 0) ;number0:out std_logic_vector(3 downto 0) ;number1:out std_logic_vector(3 downto 0);end component;component fdnport (clock_in:in std_logic;enable:in std_logic;n_of_fd:in std_logic_vector(3 downto 0) ;clock_out:out std_logic ) ;end component;component selport (clock_in:in std_logic;Xnumber:in std_logic_vector(3 downto 0) ;sel_out:out std_logic);end component;component mux1port (a:in std_logic;b:in std_logic;s:in std_logic;y:out std_logic);end component;signal l:integer range 16 downto 0 ;signal n,x:std_logic_vector(3 downto 0) ;signal selt :std_logic;signal selt_not: std_logic;signal clock_1 : std_logic;signal clock_2 : std_logic;signal clock_sel: std_logic;signal n_fd : std_logic_vector(3 downto 0) ;signal n1_fd : std_logic_vector(3 downto 0) ;beginprocess(rst,sel1)beginif rst=1 thenif sel1=1 thenl=8*d+4*c+2*b+a;elsel=4;end if;elseln=0001;xn=0001;xn=0001;xn=0010;xn=0010;xn=0010;xn=0100;xn=0100;xn=0100;xn=0000;x=0000;end case;end process;number0:number port map(n,n_fd,n1_fd);fdn0:fdn port map(clkin,selt_not,n_fd,clock_1);fdnl:fdn port map(clkin,selt,n1_fd,clock_2);mux21:mux1 port map(clock_2,clock_1,selt,clock_sel);sel0:sel port map(clock_sel,x,selt);selt_not=not selt;clk_out=clock_sel;end arch;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fdn isport(clock_in:in std_logic;enable:in std_logic;n_of_fd:in std_logic_vector(3 downto 0) ;clock_out:out std_logic);end entity;architecture bhv of fdn issignal clock:std_logic;signal q0:std_logic;signal q1:std_logic;signal number :std_logic_vector(2 downto 0) ;signal counter0:std_logic_vector(3 downto 0) ;signal counter1:std_logic_vector(3 downto 0) ;beginfdn: process (enable,clock_in, n_of_fd, clock, q0, q1)beginnumber(2 downto 0)=n_of_fd(3 downto 1);if q1 = 0 thenclock = not clock_in;elseclock = clock_in;end if;if (enable=1) thenif (n_of_fd(0)=0)thencounter10);q1 =0;if rising_edge(clock_in) thenif (number=001) thenq0 = not q0;elseif counter0 = number-1 thencounter0 0);q0 = not q0;elsecounter0 = counter0 + 1;end if;end if;end if;elsecounter00);q0=0 ;if rising_edge(clock) thenif counter1 = number thencounter1 0);q1 = not q1;elsecounter1 = counter1 + 1;end if;end if;end if;elseq0=0 ;q1=0 ;counter00);counter10);end if;end process fdn;output: process(enable, n_of_fd(0), q0, q1)beginif (enable=1) thenif (n_of_fd(0)=0)thenclock_out = q0;elseclock_out = q1;end if;elseclock_out = 0 ;end if;end process output;end bhv;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sel isport(clock_in:in std_logic;Xnumber:in std_logic_vector(3 downto 0) ;sel_out:out std_logic) ;end entity;architecture bhv of sel issignal XsubTen:std_logic_vector(3 downto 0) ;signal q:std_logic_vector(4 downto 0) ;beginXsubTen = 10 thenq= q+XsubTen-10;elseq= Xnumber thensel_out =0 ;elsesel_out =1 ;end if;end process sel;end bhv;library ieee;use ieee.std_logic_1164.all;entity mux1 isport (a:in std_logic;b:in std_logic;s:in std_logic;y:out std_logic) ;end entity;architecture bhv of mux1 isbeginwith s selecty = a when 1,b when others;end bhv;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity number isport( n:in std_logic_vector(3 downto 0) ;number0:out std_logic_vector(3 downto 0) ;number1:out std_logic_vector(3 downto 0) ;end entity;architecture bhv of number isbeginnumber0 = n;number1 = n+1;end bhv;小数分频(1.3分频)模块程序仿真结果如图3-9所示:图3-9 小数分频从仿真结果可以看出:这种设计的有优点是: 在rst或者sel有一个为低电平时,可以保持低电平输出,并保持计数。在恢复工作时,继续计数,具有有良好的性能。(六)encoder_35模块的设计:encoder_35模块的功能是:输入信号输出信号pqvabcde0000000100100010010001000110100010010000101000001100000011100000例如:当p=0,q=0,v=0时,e端输出高电平1,而其他输出低电平0,表明e端被选中。encoder_35模块的作用是:提供给mux51模块的输入信号,mux51模块根据输入信号,判断是哪路信号后输出信号。encoder_35模块实现的程序如下:library ieee;use ieee.std_logic_1164.all;entity encoder_35 isport(p,q, v:in std_logic;a,b,c,d,e:out std_logic);end encoder_35;architecture rtl of encoder_35 issignal temp:std_logic_vector(2 downto 0);begintempe=1;a=0;b=0;c=0;dd=1;a=0;b=0;c=0;ec=1;a=0;b=0;e=0;db=1;a=0;e=0;c=0;da=1;e=0;b=0;c=0;da=0;b=

温馨提示

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

评论

0/150

提交评论