




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA 作业1、二选一数据选择器22、三选一数据选择器33、八选一74ls15134、三八译码器74ls13845、d触发器74ls7456、jk触发器74ls11267、异步清零D触发器78、74ls161计数器(完全按照真值表):89、四位二进制计数器74ls161910、正常十六位计数器1011、带开关的十六计数器1112、可控制自加自减的十六位计数器1213、hello的程序1314、四位二进制数加法器1815、三位二进制乘法器20EDA技术实验教材实验一 多路选择器目的与要求:熟悉利用QuartusII的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。学会对试验板上的FPGA/CPLD进行编程下载。掌握多路选择器的硬件描述语言设计方法。实验内容:1、生成新的Quartus II工程。2、编写2选1多路选择器的VHDL代码。定义DE2平台的开关为选择输入、 X输入和Y输入。将开关SW与红色发光二极管LEDR连接,将选择器输出与绿色发光二极管LEDG连接。3、编译工程。4、将编译形成的电路下载到FPGA中。通过拨动开关、观察LED验证多路选择器的功能。扩展内容:A、完成8选1数据选择器74151的VHDL文本输入设计、仿真、下载验证。二选一数据选择器 LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY mult21 ISPORT ( s : IN STD_LOGIC; - select input control port x: IN STD_LOGIC; - x input data port y: IN STD_LOGIC; - y input data port m: OUT STD_LOGIC - m selection result out port); END mult21; ARCHITECTURE Behavior OF mult21 ISBEGINm y y ynull;end case;end process;end architecture bhv;八选一74ls151:library ieee;use ieee. std_logic_1164.all;entity mux8_1 is port( a: in std_logic_vector(2 downto 0); d: in std_logic_vector(0 to 7); y: out std_logic );end mux8_1;architecture one of mux8_1 issignal y1:std_logic;beginprocess(a)begin case a is when000 =y1y1y1y1y1y1y1y1=d(7);end case;end process;yy1y1y1y1y1y1y1y1=11111110; end case; if (g1 and (not g2a)and(not g2b)=1then y=y1; else y=11111111; end if; end process; end one;实验三 锁存器和触发器目的与要求:熟悉利用QuartusII的VHDL文本设计时序电路全过程。学习各种锁存器和触发器的设计、仿真和硬件测试,完成程序设计、软件编译、仿真分析、硬件测试。实验内容:1、新建Quartus II工程。按照DE2的硬件连接定义输入输出端口,即使用开关SW 0驱动D触发器的输入;SW1作为Clock 输入;Q 输出连接到 LEDR0。2、编译工程。3、用Technology Viewer工具检查D 触发器电路;用时序仿真验证信号波形。4、下载电路到DE2平台上,拨动D和Clock 开关,观察Q输出,验证电路的功能d触发器74ls74:library ieee;use ieee.std_logic_1164.all;entity d74ls74 isport(clk,clr,pre,d:in std_logic; qt,qtn:out std_logic);end entity d74ls74;architecture bhv of d74ls74 is signal q,qn:std_logic;signal x:std_logic; begin x=d; process(clr,pre,clk,d) begin if pre=0 and clr=1 then q=1;qn=0; elsif pre=1 and clr=0 then q=0;qn=1; elsif pre=0 and clr=0 then q=1;qn=1; elsif clk event and clk=1 then q=x;qn=not x; end if; end process;qt=q;qtn=qn;end architecture bhv;jk触发器74ls112:library ieee;use ieee.std_logic_1164.all;entity jk isport(clk,clr,pre,j,k:in std_logic; qt,qtn:out std_logic);end entity jk;architecture bhv of jk issignal jk:std_logic_vector(1 downto 0); signal q,qn:std_logic; begin jk=j&k; process(clr,pre,clk,jk) begin if pre=0 and clr=1 then q=1;qn=0; elsif pre=1 and clr=0 then q=0;qn=1; elsif pre=0 and clr=0 then q=1;qnq=q;qnq=0;qnq=1;qnq=not q;qn=q; end case; end if; end process;qt=q;qtn=qn;end architecture bhv; 异步清零D触发器LIBRARY ieee ;USE ieee.std_logic_1164.all ;ENTITY D IS PORT ( D, Clk, reset: IN STD_LOGIC ; Q : OUT STD_LOGIC) ;END D ;ARCHITECTURE Behavior OF D ISBEGIN PROCESS ( D, Clk, reset ) BEGIN IF reset=0 THEN Q=0; ELSIF clkevent and Clk = 1 THEN Q = D ; END IF ; END PROCESS ;END Behavior ;实验四 16位计数器目的与要求:熟悉利用QuartusII的VHDL文本设计时序电路全过程。学习各种进制计数器的设计、仿真和硬件测试,学习16位计数器的设计、分析和测试方法。完成程序设计、软件编译、仿真分析、硬件测试。实验内容:1、完成4位计数器,编译后用Quartus II 的RTL Viewer观察Quartus II 所综合的电路。2、将计数器扩展至16位。编译后检查计数器使用了多少个逻辑单元LE?计数器的最高工作频率Fmax是多少?3、运行时序仿真,验证电路工作的正确性。4、 修改代码,用DE2平台的按键KEY0作为Clock输入,开关SW1和SW0作为Enable和Clear输入,七段数码管HEX3-0用于显示计数的十六进制值。正确地锁定引脚,编译电路。5、下载电路到DE2平台,完成硬件验证。扩展内容:A、完成集成计数器74161的VHDL文本输入设计、仿真、下载验证。74ls161计数器(完全按照真值表):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity d16 is port(clr,load,ent,enp: in std_logic; -异步复位,同步置数 clk: in std_logic; d:in std_logic_vector(3 downto 0); qt : buffer std_logic_vector(3 downto 0); co: out std_logic); -计数溢出标志end d16;architecture behave of d16 issignal q :std_logic_vector(3 downto 0); signal x:std_logic_vector(3 downto 0);begin x=d; process(clk,clr,load,ent,enp) begin if(clr=0) then q=0000; elsif(clkevent and clk=1) then if load=0 then q=x; elsif ent=1 and enp=0 then q=q; elsif ent=1 and enp=1then q=q+1; if(q=15)then q=0000; end if;end if;end if;if(q=15) then co=1;else co=0;end if; end process;qt=q;end behave;四位二进制计数器74ls161:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity d16 is port (en,reset,set: in std_logic; -异步复位 clk: in std_logic; d:in std_logic_vector(3 downto 0); qt : buffer std_logic_vector(3 downto 0); co: out std_logic); -计数溢出标志end d16;architecture behave of d16 issignal q :std_logic_vector(3 downto 0);signal x:std_logic_vector(3 downto 0);begin x=d; process(clk,reset,set,en) begin if(reset=0) then q=0000; elsif(clkevent and clk=1) then if set=0 then q=x; elsif en=0 then q=q; elsif en=1 then q=q+1; if(q=15) then q=0000; end if;end if;end if;if(q=15) then co=1;elseco=0;end if; end process;qt=q;end behave;正常十六位计数器Library IEEE ;use IEEE.std_logic_1164.all ;use IEEE.std_logic_unsigned.all ;ENTITY count16 ISPORT(clk,clr,en : IN STD_LOGIC;rco :OUT STD_LOGIC;q : OUT INTEGER RANGE 0 TO 15 );END count16;ARCHITECTURE A OF count16 IS SIGNAL qa : INTEGER RANGE 0 TO 15;BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=0 THEN -如果CLR有效,计数器复位 qa =0; ELSIF CLKEVENT AND CLK=1 THEN -时钟CLK上升沿到来 IF EN=0 THEN -如果使能端EN无效,计数器维持原态 qa=qa; ELSIF EN=1 THEN -如果使能端EN有效,计数器开始计数 qa=qa+1; IF qa=15 THEN -如果计数器计数到15 qa=0; -那么计数器复位 END IF; END IF; END IF;IF qa=15 and en=1 THEN -如果计数器计数到15 RCO=1; -进位RCO输出进位 ELSE RCO=0; -否则为0 END IF;END PROCESS;q=qa;END;带开关的十六计数器Library IEEE ;use IEEE.std_logic_1164.all ;use IEEE.std_logic_unsigned.all ;ENTITY cnt16w ISPORT(d : IN STD_LOGIC_vector(15 downto 0);clk,clr,en,load : IN STD_LOGIC;rco :OUT STD_LOGIC;q : OUT STD_LOGIC_vector(15 downto 0);END cnt16w;ARCHITECTURE A OF cnt16w IS SIGNAL qa : STD_LOGIC_vector(15 downto 0);BEGIN PROCESS(CLK,CLR,EN,load) BEGIN IF CLR=0 THEN -如果CLR有效,计数器复位 qa =0000000000000000; ELSIF CLKEVENT AND CLK=1 THEN -时钟CLK上升沿到来 IF LOAD=0 THEN qa=d; ELSIF EN=0 THEN -如果使能端EN无效,计数器维持原态 qa=qa; ELSIF EN=1 THEN -如果使能端EN有效,计数器开始计数 qa=qa+1; IF qa=1111111111111111 THEN -如果计数器计数到15 qa=0000000000000000; -那么计数器复位 END IF; END IF; END IF;IF qa=1111111111111111 AND EN=1 THEN -如果计数器计数到15 RCO=1; -进位RCO输出进位 ELSE RCO=0; -否则为0 END IF;END PROCESS;q=qa;END;可控制自加自减的十六位计数器Library IEEE ;use IEEE.std_logic_1164.all ;use IEEE.std_logic_unsigned.all ;ENTITY cnt16ud ISPORT( ud : IN STD_LOGIC; clk,clr,en : IN STD_LOGIC; rco :OUT STD_LOGIC; q : OUT INTEGER RANGE 0 TO 15 );END cnt16ud;ARCHITECTURE A OF cnt16ud IS SIGNAL qa : INTEGER RANGE 0 TO 15;BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=0 THEN -如果CLR有效,计数器复位 qa =0; ELSIF CLKEVENT AND CLK=1 THEN -时钟CLK上升沿到来 IF EN=0 THEN -如果使能端EN无效,计数器维持原态 qa=qa; ELSIF EN=1 THEN -如果使能端EN有效,计数器开始计数 IF ud=1 THEN qa=qa+1; ELSE qa=qa-1; end if; IF ud=1 and qa=15 THEN -如果计数器计数到15 qa=0; -那么计数器复位 END IF; IF ud=0 and qa=0 THEN -如果计数器计数到0 qa=15; -那么计数器复位 END IF; END IF; END IF;IF ud=1 and qa=15 and en=1 THEN -如果计数器计数到15 RCO=1; -进位RCO输出进位 ELSIF ud=0 and qa=0 and en=1 THEN RCO=1; ELSE RCO=0; END IF;END PROCESS;qclk,q=b);S1: char_70 port map(c=b,Display=HEX0);S2: char_71 port map(c=b,Display=HEX1);S3: char_72 port map(c=b,Display=HEX2);S4: char_73 port map(c=b,Display=HEX3);S5: char_74 port map(c=b,Display=HEX4);END Behavior;count5子程序:Library IEEE ;use IEEE.std_logic_1164.all ;use IEEE.std_logic_unsigned.all ;ENTITY count5 ISPORT(clk : IN STD_LOGIC; q : OUT STD_LOGIC_VECTOR(2 DOWNTO 0 ) );END count5;ARCHITECTURE bhv OF count5 IS SIGNAL qa : STD_LOGIC_VECTOR(2 DOWNTO 0 );BEGIN PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN qa=qa+1; IF qa=100 THEN qa=000; END IF; END IF;END PROCESS;q Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display Display=1111111; END CASE;END PROCESS;END Behavior;实验六 四位二进制数加法器的设计目的与要求:熟悉利用QuartusII的VHDL文本设计有符号数和无符号数加法器全过程。掌握较复杂的组合逻辑和时序逻辑的数字系统的设计方法。完成程序设计、软件编译、仿真分析、硬件测试。实验内容:1、 应用VHDL语言设计编写一个综合电路,能能够把两个四位二进制数进行加法操作,并且能够显示进位输出。2、 应用QuartusII7.2软件完成电路的设计、编译、综合、适配、仿真;3、 在DE2开发板上进行引脚锁定以及硬件下载测试。扩展内容:A、完成JK触发器74112的VHDL文本输入设计、仿真、下载验证。四位二进制数加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder4 IS PORT(a0,a1,a2,a3:IN STD_LOGIC_VECTOR(2 DOWNTO 0 ); b0,b1,b2,b3:IN STD_LOGIC_VECTOR(2 DOWNTO 0 ); cin:IN STD_LOGIC; cout:OUT STD_LOGIC; s0,s1,s2,s3:OUT STD_LOGIC_VECTOR(2 DOWNTO 0 );END adder4;ARCHITECTURE fh1 OF adder4 ISSIGNAL cingnd:STD_LOGIC;SIGNAL cout1,cout2,cout3:STD_LOGIC;COMPONENT add1 IS PORT(a,b:STD_LOGIC; cin:IN STD_LOGIC; cout:OUT STD_LOGIC; s:OUT STD_LOGIC ); END COMPONENT;BEGIN cingnda0,b=b0,cin=cingnd,cout=cout1,s=s0);U2:add1 PORT MAP(a=a1,b=b1,cin=cout1,cout=cout2,s=s1);U3:add1 PORT MAP(a=a2,b=b2,cin=cout2,cout=cout3,s=s2);U4:add1 PORT MAP(a=a3,b=b3,cin=cout3,cout=cout,s=s3);END fh1;一位全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY add1 IS PORT( a,b:IN STD_LOGIC; cin:IN STD_LOGIC; cout:OUT STD_LOGIC; s:OUT STD_LOGIC );END add1;ARCHITECTURE fh1 OF add1 ISBEGINPROCESS(a,b,cin)VARIABLE temp,temp1:STD_LOGIC;BEGIN temp:=a XOR b; temp1:=temp XOR cin; cout=(temp AND cin) OR (a AND b); saa(0),b=bb(0),y=m(0);U2:MAND PORT MAP(a=aa(1),b=bb(0),y=x(1);U3:MAND PORT MAP(a=aa(2),b=bb(0),y=x(2);U4:MAND PORT MAP(a=aa(0),b=bb(1),y=x(3);U5:MAND PORT MAP(a=aa(1),b=bb(1),y=x(4);U6:MAND PORT MAP(a=aa(2),b=bb(1),y=x(5);U7:add1 PORT MAP(a=x(1),b=x(3),cin=0,cout=x(6),s=m(1);U8:add1 PORT MAP(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灾害赔偿法律机制研究-洞察及研究
- 柔性电子皮肤生物相容性材料创新-洞察及研究
- 能源互联网信息安全-第2篇-洞察及研究
- 农业企业质量安全管理体系下的人才培养与激励机制-洞察及研究
- 航空货运物联网安全策略-洞察及研究
- 影视内容的自媒体传播模式-洞察及研究
- 用工规范承诺范文及签署流程
- 中学后勤管理述职报告写作技巧
- 基于AI的在线英语教学设计方案
- 销售人员季度业绩提升方案
- 华为客户分级管理制度
- 项目三技术站调车任务3简易驼峰作业60课件
- 化工安全工程概论-第五章
- 机械工程控制基础课后答案(华科版)
- 运动营养学(第三版)全套课件第1-10章
- 备考2025年成人高考-专升本-政治考点及必背知识点大全
- TCECA-G 0330-2024 磁悬浮离心式鼓风机 技术条件
- 小学解方程练习题500道
- 2025年甘肃瓮福化工有限责任公司招聘笔试参考题库含答案解析
- 9古诗三首《题西林壁》《雪梅》教学实录-2024-2025学年统编版语文四年级上册
- 初二年段长会议发言稿
评论
0/150
提交评论