第一篇:EDA课程心得
EDA课程学习心得
这学期的后半期,我们开了EDA技术这门课程。EDA的中文解释是电子设计自动化,这门课程主要是用于对现代高新电子产品的设计,EDA在硬件方面融合了大规模集成电路技术,是一款综合性很强的工具。
这门课程的学习在教学中应该以实践为主,我们每周有两节课,一节是理论课学习,一节是实践课。刚开始上理论课程的时候,主要是对该软件的使用做介绍,而在实践课程上,我们应该对软件进行运用,但是,有很多的同学却没有干与课程相关的事,只有一部分的同学在练习。开始的时候,对软件很陌生,都是几个同学在一起研究,并且询问老师,才慢慢的掌握了使用方法。在后面的理论学习中,老师主要是讲解编程的一些语法,并且只讲了一些常用的,像信号量,变量,还有PROCESS语句等,这些是编程中常用的一些知识。在实践课上,主要是以实验指导书为主,根据指导书上的内容进行编程,画图仿真来对EDA技术的运用有更深入的理解。在每周一节理论课的学习情况下,很多的时间都是很珍贵的,学习理论的时间就那么一点,那么,肯定就不可能学习的很全面,老师主要是讲方法,更多的是要我们自己努力。这本教材还很不错,讲解的很详细,让初学者也能理解。然后实践课程是可以在课后也能练习,课上发现问题就能及时的询问老师,但是,课后就只能询问同学,或者是将问题留到课堂上再问老师。
这门课程学完最大的感触就是学习的时间太短了,这门课程听老师说对我们的以后工作是有很大的帮助的,但是我们却只学习了半个学期,只用了32个课时就结束了,这肯定是不够的。EDA技术可以完成各种自动设计过程,是目前最为瞩目的一项技术,它有强大的逻辑设计仿真测试技术。它的仿真测试技术只要通过计算机,就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后,还能对系统上的目标器件进行所谓的边界扫描测试。这一切都极大的提高了大规模的系统电子设计的自动化程度。现在的很多设计工作都需要先进行计算机仿真,如果没有错误,在运用到实际的硬件中,这不仅能提高设计速度,还能减少因为设计失误而造成的原料浪费。学好一门仿真软件对于我们本科学生是必不可少的,因为以后毕业了如果从事设计方向的工作,那必然要求我们有这样的一门技术。
以下是我在这门课程的学习过程中总结的几点建议,希望老师能够耐心的看完:
(1)、根据学生的层次,设计一种适合学生的教学方案。像我们班这样的基础不太好的班级,可能采用重实践的方法更合适一些。上课讲很多的理论知识,都不及在机房自己练习来的快。而且,老师有时候在课堂上也不知道该给我们讲些什么我们才会更好的接收,这样的话,在我们自己动手实践的过程中我们发现了问题,经过询问老师和与同学一起研究,这样,就可以克服难题,而且,经过这样的经历,我们对于该问题也会有很深的印象,在以后的应用中出现类似的问题我们也会更快的找到方法解决。
(2)、在实践课上要严抓课堂秩序。在实践课的时候,很多同学都不做与课程相关的事,要么翻纸盘,要么几个一起玩游戏,而真正在做实验的同学就只有那么少许的人。很多人都是在一开始就养成这样的坏习惯的,如果在刚开始就严抓课堂秩序,那么,很多人可能就会按照要求循规蹈矩了。在实践课上是很重要的学习机会,本来课程安排的时间就很少,不好好的利用,那么肯定是一项严重的损失。
(3)、上理论课的时候尽量的多的将一些知识点讲详细一些。我们学习的都是很基础的知识,不要求深入,但是应该尽量的将基础的东西都掌握了。在这门课程中,我们只学习了几章较为基础和重要的内容,只要掌握了这几章也就能进行简单的编程,在这样的情况下,我们就更是需要老师帮助我们,引导我们,理清这些知识点,从而掌握它们。
以上是我在这门课程的学习中的一些感触和心得,虽然这门课程的学习结束了,但是,有一些学习方法是同样可以运用到其他的课程学习中,在以后的学习中,我们还应该坚持,努力,将学习进行到底!
第二篇:eda技术课程总结与心得
【第一章】
1、FPGA芯片的发展主要体现在哪几个方面?未来的发展趋势是什么?
ANS:
2、EDA技术的优势是什么?
ANS: EDA依赖功能强大的计算机在EDA工具软件平台上自动的完成逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真等功能,直至实现既定性能的电子线路系统功能。EDA使得设计者的工作几乎仅限于利用软件的方式,即利用硬件描述语言HDL和EDA工具软件来完成对系统硬件功能的实现
+ P 10
3、EDA的设计流程包括哪几个环节?
ANS: ①设计输入(原理图/HDL文本编辑)②综合 ③ FPGA/CPLD 适配 ④ 时序仿真与功能门级仿真 ⑤FPGA/CPLD编程下载 ⑥FPGA/CPLD器件电路硬件检测。
4、硬件描述语言的种类有哪些?
ANS: VHDL、Verilog HDL、SystemVerilog、System C 等
5、自顶向下设计方法的优点是什么?
ANS:
过程大部分由计算机完成,可植性强,便于系统的优化和升级,以及对模型进行及时的修改,以改进系统或子系统的功能,更正设计错误,提高目标系统的工作速度,减小面积耗用,降低功耗和成本等。在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。
6、ip核可分为哪几类?
ANS: ①软IP、②固IP、③硬IP
7、ip在EDA技术的应用和发展中的意义是什么?
ANS:
IP就是将某些功能固化,而当EDA设计也需要这些功能的时候,就可以直接将植入了此功能的IP拿过来直接用,而不用再重新设计。这样既可以提高效率又可以减少设计风险。IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。
【第二章】
1、可编程逻辑器件经历哪些发展过程? ANS:
2、Altera公司的PLD芯片主要有哪些系列? ANS:
按照推出的先后顺序:Classic、MAX、FLEX、APEX、ACEX、APEX
2、Cyclone/2/3/
4、MAX2、Stratix-1/2/3/4/6.【第三章】
1、一个完整的VHDL程序包括哪几个部分?其作用是什么? ANS: ①实体描述部分 ②结构体描述部分
作用 略
2、VHDL中标示符的命名规则是什么?
ANS: 标识符是设计者在VHDL程序中自己定义的,用于标识不同名称的词语。例如实体名、端口名等。具体规则如下:
·有效的字符:包括26个大小写英文字母,数字包括0~9以及下划线。
·任何标识符必须以英文字母开头
·必须是单一的下划线,且前后都要有字母或数字。·标识符中的英文字母不区分大小写。
·允许包含图形符号(如回车符、换行符等),也允许包含空格符。
3、端口模式有哪些?
ANS: ①IN
2、OUT
3、INOUT双向端口
4、BUFFER 缓冲端口
4、VHDL中有哪些基本的数据类型? ANS: bit、bit_vector、std_logic、std_logic_vector、boolean(布尔)、natural(自然数)、integer(整数)、signed(有符号)、unsigned(无符号)、array(数组类)、record(记录类型)、Subtype(子类型)、用户自定义类型。
5、常用的VHDL程序包有哪些?
ANS:STD_LOGIC_1164、STD_LOGIC_ARITH、STD_LOGIC_SIGNED、STD_LOGIC_UNSIGNED
【第五章】
1、简述信号和变量的区别
ANS:比较对象
信号SIGNAL
变量VARIABLE
基本用法
用于作为电路中的信号连线
用于作为进程中局部数据存储单元
适用范围
在整个结构体内的任何地方都适用
只能在所定义的进程中使用
行为特性
在进程最后才对信号赋值
立即赋值
简单的说,信号是全局的,用于结构体中并行语句间数据流的传递;变量则是局部的,他主要用于单个进程中中间变量的存储.2、进程的特点是什么?
ANS:(1)进程结构内部的所有语句都是顺序执行的。
(2)多进程之间是并行执行的,并可访问结构体或实体中所定义的信号。
(3)进程的启动是由进程标识符PROCESS后的信号敏感表所标明的信号来触发的,也可以用WAIT语句等待一个触发条件的成立。
(4)各进程之间的通信是由信号来传递的。(5)进程语句的顺序性(6)进程的启动与执行过程
当进程中定义的任一敏感型号发生更新(变化)时,由顺序语句定义的行为就要重复执行一次。当进程中最后一个语句执行完毕后,执行过程将自动返回到进程的起始端,以等待下一次敏感信号的变化。
3、VHDL语言有哪几种描述方式?
ANS: 行为描述、数据流描述、结构描述
【第六章】
1、列举5个宏功能模块
ANS: ① 算数组件,包括累加器、加法器、乘法器和LPM算数函数等。
② 组合电路,包括多路选择器、比较器和LPM门函数等。
③ I/O组件,包括时钟数据恢复(CDR)、锁相环(PLL)等。
④ 存储器编译器件,包括FIFO Partitioner、RAM和ROM宏功能模块等。
⑤ 存储组件,包括存储器、移位寄存器宏模块和LPM存储器函数等。
2、Quartus能够接受的两种RAM或ROM初始化文件的格式是? ANS:.mif
.hex
3、给出锁相环的工作原理。
ANS: 锁相环路是一个相位反馈自动控制系统。它由以下三个基本部件组成:鉴相器(PD)、环路滤波器(LPF)和压控振荡器(VCO)。其组成方框图如下所示。
锁相环的工作原理:
4、已知实验板上有一个10MHZ的有源晶振,现在要产生1MHZ的正弦波,请提出设计方案
【第七章】
1、状态机的优点
ANS:① 高效的顺序控制模型 ②容易利用现成的EDA优化工具③性能稳定④设计实现效率高⑤高速性能
2、一般的状态机结构包括哪几个部分?各自的功能是什么? ANS: ①说明部分、说明部分用tpye语句定义新的数据类型,其元素通常用状态机的状态名来定义。状态变量(即现态和次态)应定义为信号,便于信息额传递,并将状态变量的数据类型定义为含有既定状态元素的新定义的数据类型。说明部分一般放在architecture 和 begin之间。
②主控时序过程、所谓主控时序过程是指负责状态机运转和在时钟驱动下负责状态转换。压控振荡器的输出经过采集并分频; 和基准信号同时输入鉴相器;
鉴相器通过比较上述两个信号的频率差,然后输出一个直流脉冲电压; 控制VCO,使它的频率改变;
这样经过一个很短的时间,VCO 的输出就会稳定于某一期望值。③主控组合过程、顾名思义,主控组合进程也可称为状态译码过程,其任务是根据外部输入的控制信号,包括来自状态机外部的信号和来自状态机内部其他非主控的组合或时序进程的信号,以确定对外输出或对内部其他组合或时序进程输出信号的内容。④辅助过程、辅助进程用于配合状态机工作的组合进程或时序进程。
3、状态机的状态编码有哪几种?各自的优缺点是什么?
ANS:① 直接输出型编码
这种编码最典型的应用就是计数器。直接输出型编码方式就是所谓的用户自定义编码方式,它的优点是输出速度快,不太可能出现毛刺现象。缺点是程序的可读性差,用于状态译码的组合逻辑资源比其他以相同触发器数量触发器 4构成的状态机多,而且控制非法状态出现的容错技术要求比较高。
②顺序编码
优点是 这种编码方式最为简单,在传统设计技术中最为常用,其使用的触发器最少,剩余的非法状态也最少,容错技术较为简单。缺点也很多,如常常会占用状态转换译码组合逻辑较多的资源,特别是有的相邻状态或不相邻状态的状态转换时涉及多个触发器的同时状态转换,因此将耗费更多的转换时间,而且容易出现毛刺现象。
③一位热码状态编码
一位热码状态编码虽然占用了较多的触发器,但其简单的编码方式大为简化了状态译码逻辑,提高了状态转换速度,增强了状态机的工作稳定性,这对于含有较多的时序逻辑资源、相对较少的组合逻辑资源的FPGA器件是最好的解决方案。
常用的去除毛刺的方法有哪几种?
ANS: ①延时方式去毛刺
②逻辑方式去毛刺 ③ 定时方式去毛刺 P261
【第八章】
1、资源优化可以通过哪几种方式实现 ANS:①资源共享 ②逻辑优化 ③串行化
2、速度优化可以通过哪几种方式实现?
ANS:① 利用流水线设计技术 ②寄存器配平③关键路径法 ④乒乓操作法
【编程题】
1、用VHDL实现某一芯片的功能
2、计数并译码显示
3、键盘扫描并显示
第三篇:eda技术课程总结与心得--整理版
【第一章】
1、FPGA芯片的发展主要体现在哪几个方面?未来的发展趋势是什么?
(1)大容量、低电压、低功耗(2)系统级高密度
(3)FPGA和ASIC出现相互融合。(4)动态可重构
2、EDA技术的优势是什么?
缩短开发周期,有各类库的支持,简化逻辑设计,有利于设计文档的管理,能仿真测试,开发者有自主权,将所有开发环节纳入统一的自顶向下的设计中,有效的利用了计算机的自动设计能力。
3、EDA的设计流程包括哪几个环节?
①设计输入(原理图/HDL文本编辑)②综合 ③ FPGA/CPLD 适配 ④ 时序仿真与功能仿真 ⑤FPGA/CPLD编程下载 ⑥FPGA/CPLD器件电路硬件检测。
4、硬件描述语言的种类有哪些?
VHDL、Verilog HDL、SystemVerilog、System C 等
5、自顶向下设计方法的优点是什么?
过程大部分由计算机完成,可植性强,便于系统的优化和升级,以及对模型进行及时的修改,以改进系统或子系统的功能,更正设计错误,提高目标系统的工作速度,减小面积耗用,降低功耗和成本等。在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。高效,高稳定性,省时省力,成本较低。
6、ip核可分为哪几类?
①软IP、②固IP、③硬IP
7、ip在EDA技术的应用和发展中的意义是什么?
IP就是将某些功能固化,而当EDA设计也需要这些功能的时候,就可以直接将植入了此功能的IP拿过来直接用,而不用再重新设计。这样既可以提高效率又可以减少设计风险。IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。
【第二章】
1、可编程逻辑器件经历哪些发展过程?
PLD,PLA,PAL,GAL,EPLD,CPLD/FPGA
2、FPGA的配置方式有哪些?
PS(被动串行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)、JTAG模式、AS(主动串行)
3、JTAG?
JTAG是英文“Joint Test Action Group(联合测试行为组织)”的词头字母的简写。JTAG边界扫描技术。
【第三章】
1、verilog中标示符的命名规则是什么?
a.标识符
Verilog HDL中的标识符(Identifier)是由任意字母、数字、$符号和_(下划线)符号的组成的字符序列,但标识符的第一个字符必须是字母或者下划线。此外,标识符是区分大小写的。
转义表示符(Escaped Identifier)为在标识符中包含任何可打印字符提供了一条途径。转义标识符(反斜线)符号开头,以空白结尾(空白可以是空格、制表符或换行符)。在转义标识符中,反斜线和结束空格并不是转义标识符的一部分。
Verilog HDL语言中定义了一系列保留标识符,叫做关键词,仅用于表示特定的含义。注意只有小写的关键词才是保留字。
指导原则:不能用大小写混用字符串表示关键词,也不能把转义的关键词作为标识别符。
b.注释
在Verilog HDL中有2种形式的注释:
/*开始,直到*/ //第二种形式:到本行结束为止
c.格式
Verilog HDL是大小写敏感的,也就是说,字符相同而字体(大小写)不同的两个标识符是不同的。此外,Verilog HDL语句的格式很自由,即语句结构既可以跨越多行编写,也可以在一行内编写。空白(空白行、制表符和空格)没有特殊含义。指导原则:行的长度必须小于132个字符。
2、端口模式有哪些?
1、INPUT
2、OUTPUT
3、INOUT双向端口
3、Verilog中有哪些基本的数据类型?
Reg,wire,parameters,integer
4、verilog中两种基本的数据类型net(wire)和reg的区别
两者的区别是:即存器型数据保持最后一次的赋值,而线型数据需要持续的驱动
输入端口可以由net/reg驱动,但输入端口只能是net;输出端口可以使net/reg类型,输出端口只能驱动net;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型 用关键词inout声明一个双向端口, inout端口不能声明为寄存器类型,只能是net类型。wire表示直通,即只要输入有变化,输出马上无条件地反映(如与、非门等简单的连接);reg表示一定要有触发,输出才会反映输入。
不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。
wire若无驱动连接,其值为z,reg默认初始值为不定值x。
reg表示一定要有触发,没有输入的时候可以保持原来的值,但不直接与实际的硬件电路对应。
5、verilog中的时钟过程表述的特点和规律
1.某信号被定义成边沿敏感时钟信号,则posedge A或 negedge A放敏感表中,always结构块中不能再出现信 号A了。
2.若B被定义成对应于时钟的电平敏感异步控制信号,则除 posedge B或negedge B放敏感表中,always块中必须 给出逻辑描述,即表述上是边沿敏感,性能上是电平敏感。
3.若某信号对于时钟同步,则不能出现在敏感信号表中。
4.敏感表中边沿敏感信号和电平敏感信号不能同时出现。
【第五章】
1、简述阻塞式赋值和非阻塞式赋值的区别
=,立即;<=过程结束
(1)同一个块程序中:阻塞赋值语句是顺序执行的;非阻塞赋值语句是并行执行的。
(2)在组合逻辑建模中应使用阻塞赋值;在时序逻辑建模中应使用非阻塞赋值。
(3)无论是阻塞赋值语句还是非阻塞赋值语句,若在该语句之前对其值进行应用,则只能引用其上一个时钟周期赋于的旧值。
2、verilog语言有哪几种描述风格?
RTL描述、行为描述、数据流描述、结构描述
3、简述任务和函数语句的区别
a.任务可以有input、output和inout,数量不限,函数只有input参数,且至少有一个input;b.任务可以包含有时序控制(如延时等),函数不能包含有任何延迟,仿真时间为0;c.任务可以用disable中断,函数不允许disable、wait语句;d.任务可以通过I/O端口实现值传递,函数名即输出变量名,通过函数返回值;e.任务可以调用其他任务和函数,函数只能调用其他函数,不能调用任务;f.任务可以定义自己的仿真时间单位,函数只能与主模块共用一个仿真时间单位;
g.函数通过一个返回一个值来响应输入信号的值,任务却能支持多种目的,能计算多个结果值,结果值只能通过被调用的任务的输出端口输出或总线端口送出;另外在函数中不能有wire型变量.任务定义语法:
task <任务名>;
<端口及数据类型声明语句>
<语句1>......endtask
函数定义的语法: function <返回值类型或范围>(函数名)
<端口说明语句>
<变量类型说明语句>
begin
<语句>......end endfunction
【第八章】
1、状态机的优点
①高效的顺序控制模型
②容易利用现成的EDA优化工具 ③性能稳定
④设计实现效率高 ⑤高速性能
2、状态机的状态编码有哪几种?各自的优缺点是什么?
① 直接输出型编码:这种编码最典型的应用就是计数器。直接输出型编码方式就是所谓的用户自定义编码方式,它的优点是输出速度快,不太可能出现毛刺现象。缺点是程序的可读性差,用于状态译码的组合逻辑资源比其他以相同触发器数量触发器构成的状态机多,而且控制非法状态出现的容错技术要求比较高。
②顺序编码:优点是这种编码方式最为简单,在传统设计技术中最为常用,其使用的触发器最少,剩余的非法状态也最少,容错技术较为简单。缺点也很多,如常常会占用状态转换译码组合逻辑较多的资源,特别是有的相邻状态或不相邻状态的状态转换时涉及多个触发器的同时状态转换,因此将耗费更多的转换时间,而且容易出现毛刺现象。③一位热码状态编码:一位热码状态编码虽然占用了较多的触发器,但其简单的编码方式大为简化了状态译码逻辑,提高了状态转换速度,增强了状态机的工作稳定性,这对于含有较多的时序逻辑资源、相对较少的组合逻辑资源的FPGA器件是最好的解决方案。
3、常用的去除毛刺的方法有哪几种?
①延时方式去毛刺
②逻辑方式去毛刺 ③ 定时方式去毛刺
第四篇:EDA课程 跑马灯设计
EDA目录
第一章 设计思路.................................................................................................................................................1 第二章 子模块......................................................................................................................................................2 2.1 分频器....................................................................................................................................................2 2.2 显示模式模块.......................................................................................................................................3 2.3 显示LED灯模块..................................................................................................................................5 第三章 调试及结果............................................................................................................................................6 3.1顶层原理图............................................................................................................................................6 第四章 体会..........................................................................................................................................................7
第一章 设计思路
在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGAJ进行一个简单的电子系统设计,本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。
跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示:从中间到两边逐个点亮LED。四种显示模式循环切换,并带有一位复位键控制系统的运行停止。为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用赋值语句来完成灯的点亮,根据了解我们实验箱上的LED灯属于共阴极接法,当给于高电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予高电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。在延时的程序编写的过程中,我们采用计数时钟脉冲个数的方式来实现。结合具体程序来说就是,在每个时钟上升沿将clk_cnt变量加一,当达到499999后,就进入显示进程做下一步的赋值操作以显示相应接续的状态。为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。当需要程序复位时,只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。
第二章 子模块
系统工作流程如下图所示,在没有外界输入控制时,中央控制器将反复循环输入预先设定的编码,因此8个数码灯将在四种显示模式中循环显示。若复位端被置0,则系统被重置,无论当前处于什么状态,都重新从最开始的状态开始重新执行。
2.1 分频器
输入一个CLK信号,通过分频器模块分别输送到显示模式模块和显示LED模块 生成分频器程序:
module FPQ(rst,clk,sel,fp);input clk,rst;input [1:0]sel;output fp;reg[1:0]temp;reg fp;always@(posedge clk or negedge rst)if(!rst)begin temp<=0;fp<=0;图1 分频器模块 end else case(sel)2'b00: if(temp==2)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b01: if(temp==3)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b10: if(temp==1)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b11:fp<=clk;endcase endmodule 2.2 显示模式模块
在实验箱上显示彩灯运行的模式,分别有1-4种模式生成数码管显示程序:
module moshi(state,led,rst,clk,);input [1:0] state;input rst,clk;output[7:0] led;reg [7:0]led;reg [2:0]temp;always@(posedge clk or negedge rst)if(!rst)temp<=0;else if(temp==3'b111)temp<=3'b000;else temp<=temp+1;always@(posedge clk)case(state)2'b00: begin case(temp)3'b000:led<=8'b10000000;3'b001:led<=8'b01000000;3'b010:led<=8'b00100000;3'b011:led<=8'b00010000;3'b100:led<=8'b00001000;3'b101:led<=8'b00000100;3'b110:led<=8'b00000010;3'b111:led<=8'b00000001;
图2 显示模式模块 endcase end 2'b01: begin case(temp)3'b000:led<=8'b00000001;3'b001:led<=8'b00000010;3'b010:led<=8'b00000100;3'b011:led<=8'b00001000;3'b100:led<=8'b00010000;3'b101:led<=8'b00100000;3'b110:led<=8'b01000000;3'b111:led<=8'b10000000;endcase end 2'b10: begin case(temp)3'b000:led<=8'b10000001;3'b001:led<=8'b01000010;3'b010:led<=8'b00100100;3'b011:led<=8'b00011000;3'b100:led<=8'b10000001;3'b101:led<=8'b01000010;3'b110:led<=8'b00100100;3'b111:led<=8'b00011000;endcase end 2'b11: begin case(temp)3'b000:led<=8'b00011000;3'b001:led<=8'b00100100;3'b010:led<=8'b01000010;3'b011:led<=8'b10000001;3'b100:led<=8'b00011000;3'b101:led<=8'b00100100;3'b110:led<=8'b01000010;3'b111:led<=8'b10000001;endcase end endcase endmodule 2.3 显示LED灯模块
通过8个LED灯显示4种显示模式:1模式,从左到右逐个点亮LED;2模式,从右到左逐个点亮LED;3模式,从两边到中间逐个点亮LED;4模式,从中见到两边逐个点亮LED。生成LED灯模块程序:
module SEG7(ms,clk,rst,seg7);input clk,rst;input [1:0]ms;output [6:0]seg7;reg[6:0]seg7;always@(posedge clk or negedge rst)if(!rst)seg7<=7'b0111111;else case(ms)2'b00:seg7<=7'b0000110;2'b01:seg7<=7'b1011011;2'b10:seg7<=7'b1001111;2'b11:seg7<=7'b1100110;endcase endmodule
图3 显示LED灯模块
第三章 调试及结果
3.1顶层原理图
原理图如下:
图4原理图
根据引脚锁定,完成实验箱硬件电路部分的线路连接。
再次编译,设定好编程下载方式后,将导线与相应数码管及开关谅解好就可以进行硬件下载测试了。最后,将程序下载入芯片后,观察硬件运行结果,即数码灯显示情况。经测试,所编写的程序完全达到了课程设计的要求,并得要了相应的结果。
第一种显示是从左向右逐个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示:从中间到两边逐个点亮LED。在每个显示模式之间都有一次8位led全亮,接着全灭的显示过程,四种显示模式通过手动切换,并带有一位复位键控制系统的运行停止。当rst按键按下时,led停止显示,保持按下前的状态,如过不按rst,八位led灯四种模式通过手动控制模式显示。
第四章 心得体会
在这为期近一周的EDA课程设计过程中,自己受益匪浅,不仅对书本知识有了更全面更深刻的理解,还掌握了QuartusⅡ这款软件。在以后的工作有增加了一门新技能。在整个课设过程中遇到了很多的困难,引脚的设定,顶层文件的建立,画图中连线的区分,都是小细节,但都必须注意,否则就会影响整个设计的实验的过程使我明白了,要想避免实验中走弯路,首先程序要逻辑清晰,简洁明了,避免不必要的嵌套与条用,其次要适当地给程序加上注解文字,提高可读性,以方便之后的程序出错时进行查找,最后充分利用仿真软件提供的各项编译工具与报错消息,按图索骥,有方向的完成程序调试。网上搜集的一些资料也给予了我很大的帮助。
在这短短几天的课设中,加深了我对EDA的理解,认识。对QuartusⅡ软件的使用更加得心应手,在以后的学习和工作中又多了一门技能。
书本上的知识学会知识了解,必须在实践中才能深入的掌握所学的知识,要不就是纸上谈兵,不论说的多么华丽,只有在实践中才能体现知识的价值,也才能考研一个人的真正能力。
这次EDA课设对我受益匪浅,谢谢在设计中帮助过我的老师和同学,团结就是力量。
第五篇:合肥工业大学EDA课程总结报告
EDA课程总结报告
一、EDA技术简介 1.EDA技术的概念
EDA即Electronic Design Automation的缩写,直译为:电子设计自动化 EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。
2.EDA技术的目的和意义
EDA技术以规模巨大的可编程逻辑器件(PLD)作为进行电子设计的载体,硬件描述语言(HDL)作为系统逻辑描述的一种主要 表达方式,通过它来完成对系统逻辑的描述,再依托具有强大功能的计算机,通过运用与 EDA 技术相应的工具软件,完成电子系统的 自动化设计。这种技术的应用使设计人员得以 高效快速地完成设计任务,使设计所用周期时间得以缩短,减少了设计所需的投入成本。20 世纪70年代由于计算机及集成电路的急剧发展,使电子技术受到剧烈的冲击,其更新换代的周期不断缩减,而专用的集成电路却不断提升其设计难度,致使两者之间的矛盾逐渐扩大,这就使得电子技术要不断地更新,从而满足电子产品生产的需要,经过近几十年的发展,电子设计技术大致经历了三个主要的发展阶段,从初期的 CAD 阶段到 CAE 阶段再到现在的 EDA 阶段,电子设计技术取得了飞跃性的发展。EDA技术最特别之处在于它的设计流程,与传统自下而上的电子设计流程恰恰相反,EDA技术选择使用自上而下的设计流程,它从电子系统设计的整体出发,在进行设计之前就将系统中各部分之间的结构规划好,在对方框图进行划分时完成相关的仿真和纠错工作,使用 HDL 对高层次逻辑进行描述,并运用综合优化方法完成所有有关工作,然后通过使用 EDA 技术,可以帮助用户实现对系统中任意一项硬件功能进行系统描述,最后再利用现场可编程门阵列(FPGA)或复杂可编程逻辑器 件(CPLD)来实现电子系统设计的结果。这种先进的电子技术有效地解决了传统电子设计技术的弊端,减少了实际应用中出现故障的几率,从而使设计效率得以大幅度提升。
二、EDA技术发展现状
EDA 技术发展迅猛, 逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。
在教学方面: 几乎所有理工科(特别是电子信息)类的高校都开设了EDA 课程。主要是让学生了解EDA 的基本原理和基本概念、掌握用VHDL 描述系统逻辑的方法、使用EDA 工具进行电子电路课程的模拟仿真实验。如实验教学、课程设计、毕业设计、设计竞赛等均可借助CPLD/ FPGA 器件, 使实验设备或设计出的电子系统具有高可靠性, 又经济、快速、容易实现、修改便利, 同时可大大提高学生的实践动手能力、创新能力和计算机应用能力。
在科研方面: 主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将CPLD/ FPGA 器件的开发应用到仪器设备中, CPLD/ FPGA 可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。传统机电产品的升级换代和技术改造, CPLD/ FPGA 的应用可提高传统产品的性能, 缩小体积, 提高技术含量和产品的附加值。作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行, 这不仅是提高设计效率的需要, 更是时代发展的需求, 只有掌握了EDA 技术才有能力参与世界电子工业市场的竞争, 才能生存与发展。随着科技的进步, 电子产品的更新日新月异, EDA 技术作为电子产品开发研制的源动力, 已成为现代电子设计的核心。所以发展EDA 技术将是电子设计领域和电子产业界的一场重大的技术革命, 同时也对电类课程的教学和科研提出了更深更高的要求。
在产品设计与制造方面: 从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等, EDA 技术不单是应用于前期的计算机模拟仿真、产品调试, 而且也在PCB 的制作、电子设备的研制与生产、电路板的焊接、制作过程等有重要作用。可以说EDA 技术已经成为电子工业领域不可缺少的技术支持。
进入21 世纪后,电子技术全方位纳入EDA 领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面: 使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA 工具的ASIC 设计标准单元已涵盖大规模电子系统及IP 核模块;软硬件IP 核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SOC(System-on-Chip)高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展, 电子系统的设计方法和设计手段都发生了很大的变化。
传统的固定功能集成块加连线的设计方法正逐步地退出历史舞台, 而基于芯片的设计方法正成为现代电子系统设计的主流。
三、器件的封装
常用的各种电路元器件以及IC芯片采用的封装形式:
元件名称
元件符号
封装属性
电阻 RES1-RES4 AXIAL系列 从AXIAL-0.3到AXIAL-1.0,后缀数字代表两焊盘的间距,单位为Kmil.瓷片电容 RAD0.1-RAD0.3。其中0.1-0.3指电容大小,一般用RAD0.1 电解电容: RB.1/.2-RB.4/.8 其中.1/.2-.4/.8指电容大小。一般<100uF 用RB.1/.2,100uF-470uF用RB.2/.4,>470uF用RB.3/.6 电位器 POT1和POT2 VR-1到VR-5.普通二极管 DIODE DIODE0.4和DIODE 0.7 肖特基二极管 DIODE SCHOTTKY DIODE0.4和DIODE 0.7 隧道二极管 DUIDE TUNNEL DIODE0.4和DIODE 0.7 变容二极管 DIODE VARCTOR DIODE0.4和DIODE 0.7 稳压二极管 ZENER1~3 DIODE0.4和DIODE 0.7 发光二极管 RB.1/.2 三极管 NPN,NPN1,PNP,PNP1 TO18、TO-92A(普通三极管)TO-220(大功率三极管)TO3(大功率达林顿管)
N沟道结型场效应管 JFET N TO18 P沟道结型场效应管 JFET P TO18 N沟道增强型管 MOSFET N TO18 P沟道增强型管 MOSFET P TO18 整流桥 BRIDGE1和BRIDGE2 D系列,如D-44,D-37,D-46等。单排多针插座 CON CON系列,从CON1到CON60,引脚封装形式为SIP系列,从SIP-2到SIP-20。
.双列直插元件
根据功能的不同而不同
DIP系列。
串并口类原理图 DB DB系列,引脚封装形式为DB和MD系列 电源稳压块78系列 7805,7812 TO-126和TO-126 电源稳压块79系列 7905,7912 TO-126和TO-126
四、PCB板布线
PCB板布线对电路的影响:
1.我们要注意贴片器件(电阻电容)与芯片和其余器件的最小距离芯片:一般我们定义分立器件和IC芯片的距离0.5~0.7mm,特殊的地方可能因为夹具配置的不同而改变
2.对于分立直插的器件
一般的电阻如果为分立直插的比贴片的距离略大一般在1~3mm之间。注意保持足够的间距(因为加工的麻烦,所以直插的基本不会用)
3.对于IC的去耦电容的摆放
每个IC的电源端口附近都需要摆放去耦电容,且位置尽可能靠近IC的电源口,当一个芯片有多个电源口的时候,每个口都要布置去耦电容。
4.在边沿附近的分立器件
由于一般都是用拼板来做PCB,因此在边沿附近的器件需要符合两个条件,第一就是与切割方向平行(使器件的应力均匀),第二就是在一定距离之内不能布置器件(防止板子切割的时候损坏元器件)5.如果相邻的焊盘需要相连,首先确认在外面进行连接,防止连成一团造成桥接,同时注意此时的铜线的宽度。
6.焊盘如果在铺通区域内需要考虑热焊盘(必须能够承载足够的电流),如果引线比直插器件的焊盘小的话需要加泪滴(角度小于45度),同样适用于直插连接器的引脚。
7.元件焊盘两边的引线宽度要一致,如果时间焊盘和电极大小有差距,要注意是否会出现短路的现象,最后要注意保留未使用引脚的焊盘,并且正确接地或者接电源。
8.注意通孔最好不要打在焊盘上。
9.另外就是要注意的是引线不能和板边过近,也不允许在板边铺铜(包括定位孔附近区域)
10.大电容:首先要考虑电容的环境温度是否符合要求,其次要使电容尽可能的远离发热区域
五、总结
心得感想:
在开始上这门课时,我对它有一点兴趣,因为当我用自己所学的知识做出一些东西时我觉得特别开心。通过对这门课程相关理论的学习,我掌握了EDA的一些基本的的知识,用自己学到的东西尽可能的去完成老师布置的实验。通过实验使我更加深刻的认识和理解了EDA。不过在做实验的时候带来的不仅仅只是收获,也会有很多的困难。例如,当在画实验原理图的时候需要一个元件,但是怎么找都找不到这个元件。做实验的时候我也深刻的感觉到团结的力量以及在老师的重要性,有很多的时候出现问题了不要自己硬抗着,而是应该多问问身边的人,多问问老师,因为老师的指导会使你的问题马上得以解决而且你也会理解,当下次出现同样的错误时,你会很快的解决。
对这门课程的最大收获除了学习到了知识以外,更重要的是让我明白了一个道理:只要全身心的投入到一件事中,并且要有持之以恒的决心,就一定会有收获。有的人觉得自己做不出来,就网上搜一个了事,但是,放弃一次黑暗中摸索的经历,就放弃了一次成长的机会!如果你付出了,没有收获。那只能说,是付出的还不够多。
在学习这门课的时候我觉得实验真的很重要,而且只有经过实验我们才能更好的掌握所学的理论知识,才能更好的应用它们。