电子设计自动化实验报告

合集下载

EDA实训报告总结

EDA实训报告总结

实训心得短暂的一周实训已经过去了,对于我来说这一周的实训赋予了我太多实用的东西了,不仅让我更深层次的对课本的理论知识深入了理解,而且还让我对分析事物的逻辑思维能力得到了锻炼,提高了实际动手能力,下面谈一下就这一周实训中我自己的一些心得体会.一周的实训已经过去了,我们在老师提供的实践平台上通过自己的实践学到了很多课本上学不到的宝贵东西,熟悉了对quartus ⅱ软件的一般项目的操作和学到了处理简单问题的基本方法,更重要的是掌握了vhdl语言的基本设计思路和方法,我想这些会对我今后的学习起到很大的助推作用。

此外,还要在今后的课本理论知识学习过程中要一步一个脚印的扎实学习,灵活的掌握和运用专业理论知识这样才能在以后出去工作的实践过程中有所成果。

最后还要感谢学校为我们提供这样专业的实践平台还有瓮老师在一周实训以来的不断指导和同学的热情帮助。

总的来说,这次实训我收获很大.同时,感谢大专两年来所有的老师,是你们为我解惑受业,不仅教授我专业知识,更教会我做人的道理.这次eda实训让我感觉收获颇多,在这一周的实训中我们不仅巩固了以前学过的知识,而且还学到了怎样运用eda设计三种波形的整个过程和思路,更加强了我们动手能力,同时也提高了我们的思考能力的锻炼,我们在写程序的同时还要学会要改程序,根据错误的地方去修改程序.本文基于verilog hdl的乒乓球游戏机设计,利用verilog hdl语言编写程序实现其波形数据功能在分析了cpld技术的基础上,利用cpld开发工具对电路进行了设计和仿真,从分离器件到系统的分布,每一步都经过严格的波形仿真,以确保功能正常。

从整体上看来,实训课题的内容实现的功能都能实现,但也存在着不足和需要进一步改进的地方,为我今后的学习和工作奠下了坚实的基础。

通过此次的实训课题,掌握了制作乒乓球游戏机技术的原理及设计要领,学习并掌握了可编程逻辑电路的设计,掌握了软件、cpld元件的应用,受益匪浅,非常感谢瓮老师这一学期来的指导与教诲,感谢老师在学习上给予的指导,老师平常的工作也很忙,但是在我们学习的过程中,重来没有耽搁过,我们遇到问题问他,他重来都是很有耐心,不管问的学生有多少,他都细心的为每个学生讲解,学生们遇到的不能解决的,他都配合同学极力解决。

电子设计自动化EDA技术实验四报告模板-10进制计数器设计

电子设计自动化EDA技术实验四报告模板-10进制计数器设计

南京工程学院自动化学院实验报告课程名称电子设计自动化EDA技术实验项目名称10进制计数器设计实验学生班级实验学生姓名同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日24其中D 表示输入初始计数值,Sta 为计数开始,Q 表示当前计数值;LD 表示预制计数值,LD 为“0”,初始计数值打入器件;UD 表示计数方向,UD 为‘0’,计数器加计数,UD 为‘1’,计数器减计数;C 表示器件工作态,C 为‘0’,表示计数器正在计数;C 为‘1’,表示计数器计数结束;CP 为计数脉冲。

四、实验方案设计、实验方法 1. 实验方案10进制计数器的VHDL 描述有多种方法,设计过程中可以采用计数脉冲CP 作为敏感量,CP 的每个上升沿,计数值Q 加‘1’或减‘1’,加到‘9’后回‘0’或减到‘0’后回‘9’,语句可采用case …when 、with …select 、if …then 以及加减运算等多种结构实现。

也可以首先设计基本的触发器、锁存器等元件,而后通过元件的互联实现。

本实验中根据真值表用if-then 结构实现10进制计数器 2. 实验方法首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。

五、实验步骤1. 设计输入 利用FILE\New 菜单输入VHDL 源程序,创建源文件D0 D1 D2 D3 CP Sta LD UDQ0 Q1 Q2 Q3 C62. 器件及管脚逻分配图管脚分配情况如图,所选器件为EPM7032AELCC44-43. 仿真波形10进制计数器的仿真波形如下图,从波形可以得出,输入输出满足前文真值表,设计电路功能达到设计要求4. 时序分析图上述时间分析可以得到,输出信号存在3ns的时间延迟,它主要与器件速度、表达逻辑的合理性有关,选用速度更高器件、优化设计可以使该值降低。

8。

设计占空比为40%的方波发生器

设计占空比为40%的方波发生器

电子设计自动化实验报告(五)学院:电气学院班级:电子122班姓名:覃思远
一、实验题目:设计占空比为40%的方波发生器
二、实验目的:学会调用LPM模块类存储器来设计涉及RAM和ROM等存储器应用的EDA 设计开发。

三、实验程序:
四、实验仿真结果:
五、仿真结果分析:设置时钟inclk0、时钟使能clken=1和复位reser=0,由图可以看出,输出q得到一个占空比为40%的方波,该设计为占空比为40%方波发生器。

六、硬件下载设置及测试过程:根据板子给定的引脚锁定图,选定相应的硬件把硬件的引脚与程序中的输入输出端锁定,编译并下载程序,设置好时钟inclk0、时钟使能clken=1和复位reser=0,板子上电测试,观察实验现象是否符合程序的结果。

七、总结:在涉及RAM和ROM等存储器应用的EDA 设计开发中要学会利用Quartus II 调用LPM RAM的方法和相关技术,包括仿真测试、初始化配置文件生成、例化程序表述、
相关属性应用、以及存储器的Verilog语言描述等。

eda课程设计实验小结

eda课程设计实验小结

eda课程设计实验小结一、教学目标本课程的教学目标是使学生掌握EDA(电子设计自动化)的基本原理和实验技能,能够运用EDA工具进行简单的电子系统设计和仿真。

具体目标如下:1.知识目标:学生能够理解EDA的基本概念、发展历程和主要应用领域;熟悉常见的EDA工具及其基本操作。

2.技能目标:学生能够运用EDA工具进行电路设计、仿真和验证;能够进行简单的PCB设计和管理。

3.情感态度价值观目标:培养学生对电子技术的兴趣和好奇心,提高学生的问题解决能力和创新意识。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.EDA基本概念和发展历程:介绍EDA的定义、发展历程和主要应用领域。

2.EDA工具的基本操作:以某一款常见的EDA工具为例,讲解其基本操作和功能。

3.电路设计和仿真:通过具体案例,讲解如何使用EDA工具进行电路设计和仿真。

4.PCB设计和管理:介绍PCB的基本概念,讲解如何使用EDA工具进行PCB设计和管理。

三、教学方法为了达到课程目标,我们将采用以下几种教学方法:1.讲授法:讲解EDA的基本概念、发展历程和主要应用领域。

2.案例分析法:通过具体案例,引导学生掌握EDA工具的基本操作和应用。

3.实验法:让学生亲自动手进行电路设计和仿真实验,提高其实践能力。

4.讨论法:鼓励学生积极参与课堂讨论,培养其创新意识和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的EDA教材,为学生提供系统、科学的学习材料。

2.参考书:提供一些精选的参考书籍,拓展学生的知识视野。

3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。

4.实验设备:准备充足的实验设备,确保每个学生都能动手进行实验。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其学习态度和理解能力。

实习报告自动化专业实习报告

实习报告自动化专业实习报告

实习报告自动化专业实习报告实习报告。

实习报告自动化专业实习报告。

实习时间,2021年7月1日至2021年8月30日。

实习单位,某某科技有限公司。

实习内容:在某某科技有限公司的实习期间,我主要负责参与自动化系统的设计与开发工作。

在实习的过程中,我学习了自动化系统的基本原理和技术,并且通过实际操作和项目实践,提高了自己的实际操作能力和解决问题的能力。

在实习的过程中,我参与了公司的一个自动化系统项目,负责了系统的设计与开发工作。

在这个项目中,我学习了自动化系统的整体架构设计和各个模块之间的协作关系,掌握了PLC编程、传感器应用、工业网络通信等技术,并且通过与团队的合作,解决了系统中的一些技术难题。

在实习的过程中,我还参与了公司的一些现场调试工作,学习了如何在实际的生产现场中部署和调试自动化系统,了解了自动化系统在实际生产中的应用和运行情况。

实习收获:通过这次实习,我不仅学习了自动化系统的理论知识,还掌握了自动化系统的设计与开发技术,并且通过实际操作和项目实践,提高了自己的实际操作能力和解决问题的能力。

同时,通过与团队的合作和项目实践,我也学习了团队合作的重要性和技术交流的重要性,提高了自己的团队协作能力和沟通能力。

在实习的过程中,我还结识了许多优秀的同事和导师,他们的经验和教诲让我受益匪浅,对自动化专业的发展和未来充满信心。

总结:通过这次实习,我不仅学到了很多专业知识和技术,还锻炼了自己的实际操作能力和解决问题的能力,并且通过与团队的合作和项目实践,提高了自己的团队协作能力和沟通能力。

这次实习经历让我受益匪浅,对自动化专业的发展和未来充满信心。

感谢公司和导师对我的指导和培养,我会继续努力,不断提高自己,为公司的发展贡献自己的力量。

自动化技术综合实训报告

自动化技术综合实训报告

自动化技术综合实训报告一、实训内容及目标本次综合实训的主要内容是利用自动化技术完成一个智能家居系统的设计与搭建。

该系统主要包括智能家居控制中心、家庭安全监测模块、环境舒适调控模块以及远程控制模块,旨在提高生活的便利性、安全性以及舒适性。

实训的目标是让学生通过实际操作,了解自动化技术在家庭生活中的应用,掌握智能家居系统的设计与搭建方法,并能够独立完成类似项目的工作。

二、实训过程及方法1.设计与搭建智能家居控制中心:首先,我们需要设计一个智能家居控制中心,用于连接各个模块,并对其进行监控与控制。

在设计过程中,我们需要确定控制中心的硬件设备以及网络通信方式。

然后,我们需要使用相应的开发工具进行编程,通过传感器获得各种数据,并通过控制指令对各个模块进行控制。

2.家庭安全监测模块设计与搭建:家庭安全监测模块主要包括人体红外传感器和摄像头。

通过人体红外传感器检测到有人进入时,触发报警系统,并通过摄像头实时监控并拍摄画面。

我们需要设计相应的电路,并编写程序对传感器和摄像头进行控制。

3.环境舒适调控模块设计与搭建:环境舒适调控模块主要包括温湿度传感器和空调控制器。

通过温湿度传感器获取环境温湿度数据,并通过空调控制器控制温度和湿度。

我们需要设计相应的电路,并编写程序对传感器和空调控制器进行控制。

4.远程控制模块设计与搭建:远程控制模块主要用于实现用户对智能家居系统的远程控制。

我们可以通过手机、电脑等设备对控制中心进行远程操控,实现对家庭安全监测模块和环境舒适调控模块的远程控制。

我们需要设计相应的网络通信方式,并编写远程控制程序。

三、实训成果及总结在本次综合实训中,我们成功设计并搭建了一个智能家居系统,包括智能家居控制中心、家庭安全监测模块、环境舒适调控模块以及远程控制模块。

通过实际操作,我们深入了解了自动化技术在家庭生活中的应用,掌握了智能家居系统的设计与搭建方法,并且能够独立完成类似项目的工作。

通过本次实训,我们对自动化技术有了更深入的了解,发现自动化技术在提高家庭生活的便利性、安全性以及舒适性方面具有巨大潜力。

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。

要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。

实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。

1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。

2.建立新文件, 选择文本类型或原理图类型。

3. 编写程序。

4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。

若结果不正确, 则修改程序, 再编译, 直到正确。

模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。

EDA实验报告

EDA实验报告

EDA实验报告EDA(VHDL编程)实验报告一、引言EDA (Electronic Design Automation) 是一种用于电子设计和验证的自动化工具。

VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述和建模数字系统。

本实验旨在使用VHDL编程并使用EDA工具进行设计和验证。

二、实验目的1.理解并熟悉VHDL编程2.学会使用EDA工具进行设计和验证3.实践数字系统的建模和仿真三、实验过程1.VHDL编程根据实验要求,我们使用VHDL编程来实现一个4位2选1多路器。

首先,我们定义输入端口和输出端口,并声明所需的信号和变量。

然后,我们编写组合逻辑和时序逻辑以实现所需的功能。

最后,我们将实例化该多路器并指定其输入和输出端口。

2.EDA工具设计和验证我们选择了 Xilinx ISE Design Suite 作为我们的 EDA 工具。

首先,我们创建一个新的项目并选择相应的 FPGA 芯片。

然后,我们添加我们的VHDL 设计文件到项目中,并进行综合、布局和路由。

最后,我们使用仿真工具验证我们的设计。

四、实验结果经过实验,我们成功地编写并实例化了一个4位2选1多路器。

我们使用 Xilinx ISE Design Suite 进行综合、布局和路由,并成功验证了我们的设计。

五、实验总结通过本实验,我们掌握了VHDL编程和EDA工具的使用。

我们学会了使用VHDL描述数字系统,并使用EDA工具进行设计和验证。

这些技能对于电子设计和验证非常重要,并将有助于我们更好地理解和应用数字系统的原理和方法。

在实验过程中,我们也遇到了一些困难和挑战。

例如,我们可能需要更深入地了解VHDL编程的语法和方法,以及如何使用EDA工具的高级功能。

此外,我们还需要更多的实践来提高我们的设计和仿真技能。

总之,本实验有助于我们深入学习和理解数字系统的设计和验证。

通过实践和使用EDA工具,我们能够更好地应用所学知识,提高我们的设计和验证能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏大学京江学院Array JINGJIANG COLLEGE OF J I A N G S U U N I V E R S I T Y 课程实验报告
电子设计自动化实验报告
班级:
学号:
姓名:
实验一半加器和全加器的设计
一、实验目的
1. 进一步熟悉Max+PlusII软件的使用
2. 学习用图形输入方式和VHDL语言输入方式设计数字电路
3. 学习用元件例化语句进行结构化设计
二、实验内容
1. 用图形方式设计一位半加器
2.用VHDL语言设计一位半加器
3.用图形方式设计全加器
4.用元件例化方式设计全加器
三、设计实现
1. 用图形方式设计一位半加器
原理图:
仿真波形:
2.用VHDL语言设计全加器
原理图:
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY or2 IS
PORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);
END ENTITY or2;
ARCHITECTURE fu1 OF or2 IS
BEGIN
c<=a OR b;
END ARCHITECTURE fu1;
---半加器描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY half_adder IS
PORT(a,b:IN STD_LOGIC;s,c:OUT STD_LOGIC);
END ENTITY half_adder ;
ARCHITECTURE fu1 OF half_adder IS
BEGIN
s<=a XOR b;
c<=a and b;
END ARCHITECTURE fu1;
--1位二进制全加器顶层设计描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_adder IS
PORT( A,B,Cin :IN STD_LOGIC;sum,cout :OUT STD_LOGIC;);
END ENTITY f_adder IS
COMPONENT h_adder2;
PORT( a,b:IN STD_LOGIC;
c,s :OUT STD_LOGIC);
END COMPONENT;
COMPONENT or2
PORT( a,b :IN STD_LOGIC; c :OUT STD_LOGIC);
END COMPOMENT;
SINGNAL d,e,f : STD_LOGIC;
BEGIN
u1 :h_adder2 PORT MAP( A,B,d,e);
u2 :h_adder2 PORT MAP(d,Cin,f,sum);
u3 : or2 PORT MAP(e,f,cout);
END ARCHTECTURE fd1;
仿真波形:
实验二四选一数据选择器的设计
一、实验目的
1. 进一步熟悉Max+PlusII软件的使用
2. 学习VHDL语言中顺序语句和并行语句的使用
二、实验内容
1. 用if语句实现
2. 用case语句实现
3. 用when…else语句实现
4. 用with…select …when语句实现
三、设计实现
1. if
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41_3 IS
PORT(a,b,c,d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
y :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux41_3;
ARCHITECTURE one OF mux41_3 IS
BEGIN
PROCESS(sel)
BEGIN
IF sel="00" THEN
y<=a;
ELSIF sel="01" THEN
y<=b;
ELSIF sel="10" THEN
y<=c;
ELSE
y<=d;
END IF;
END PROCESS;
END one;
仿真波形:
2. case
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41_4 IS
PORT(a,b,c,d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
y :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux41_4;
ARCHITECTURE one OF mux41_4 IS
BEGIN
PROCESS(sel)
BEGIN
CASE sel IS
WHEN "00"=>y<=a;
WHEN "01"=>y<=b;
WHEN "10"=>y<=c;
WHEN "11"=>y<=d;
WHEN OTHERS=>y<="XX";
END CASE;
END PROCESS;
END one;
3.When else
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(a,b,c,d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
y :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux41;
ARCHITECTURE one OF mux41 IS
BEGIN
y<=a WHEN sel="00" ELSE
b WHEN sel="01" ELSE
c WHEN sel="10" ELSE
d WHEN sel="11" ELSE
"xxx"WHEN OTHERS;
END one;
4.with select
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mux41_2 IS
PORT(a,b,c,d:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
y :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END mux41_2;
ARCHITECTURE one OF mux41_2 IS
BEGIN
WITH sel SELECT
y<=a WHEN "00",
b WHEN "01",
c WHEN "10",
d WHEN "11",
"XXXX" WHEN OTHERS;
END one;
实验三可逆计数器的设计
一、实验目的
1. 进一步熟悉Max+PlusII软件的使用
2. 学习简单时序逻辑电路的设计
二、实验内容
1.用VHDL语言设计可逆计数器的设计
三、设计实现
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY bicnt IS
PORT(dir :IN STD_LOGIC;
clk :IN STD_LOGIC;
q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END bicnt;
ARCHITECTURE one OF bicnt IS
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1')THEN
IF dir='0'THEN q<=q+1;
ELSE q<=q-1;
END IF;
END IF;
END PROCESS;
END one;
仿真波形:。

相关文档
最新文档