VHDL学习心得
VHDL编程的一些心得体会(共五则)
VHDL编程的一些心得体会(共五则)第一篇:VHDL 编程的一些心得体会VHDL 是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed Integrated Circuit)Hardware Description Language。
与另外一门硬件描述语言 Verilog HDL 相比,VHDL 更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和行为级(寄存器传输级),而且VHDL 具有设计重用、大型设计能力、可读性强、易于编译等优点逐渐受到硬件设计者的青睐。
但是,VHDL 是一门语法相当严格的语言,易学性差,特别是对于刚开始接触VHDL 的设计者而言,经常会因某些小细节处理不当导致综合无法通过。
为此本文就其中一些比较典型的问题展开探讨,希望对初学者有所帮助,提高学习进度。
一.关于端口VHDL 共定义了5 种类型的端口,分别是In, Out,Inout, Buffer 及 Linkage,实际设计时只会用到前四种。
In 和 Out 端口的使用相对简单。
这里,我们主要讲述关于 buffer和inout 使用时的注意事项。
与 Out 端口比,Buffer 端口具有回读功能,也即内部反馈,但在设计时最好不要使用 buffer,因为 buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子模块元件例化,不利于大型设计和程序的可读性。
若设计时需要实现某个输出的回读功能,可以通过增加中间信号作为缓冲,由该信号完成回读功能。
双向端口Inout 是四种端口类型中最为特殊的一种,最难以学习和掌握,为此专门提供一个简单程序进行阐述,部分程序如下:...…① DataB<=Din when CE=’1’ and Rd=’0’ else②(others=>’Z’);③ Dout<=DataB when CE=’1’ and Rd=’1’ else④(others=>’1’);… …程序中 DataB 为双向端口,编程时应注意的是,当 DataB 作为输出且空闲时,必须将其设为高阻态挂起,即有类似第②行的语句,否则实现后会造成端口死锁。
vhdl心得体会
vhdl心得体会经过这个学期的VHDL课程学习,我对VHDL有了较为深入的了解和体会。
以下是我对VHDL的心得体会:首先,VHDL是一种硬件描述语言,用于描述数字电路和系统的行为和结构。
相比传统的结构化硬件描述语言,如Verilog,VHDL更加强调功能的建模和层次化设计。
通过使用VHDL,我们可以以一种高级的、可抽象化的方式来描述电路和系统的功能,从而提高开发效率。
其次,学习VHDL需要理解并熟练掌握语言的语法和规则。
VHDL有自己独特的语法和规则,例如信号声明、实体和体系结构的定义、过程语句等。
要编写正确的VHDL代码,需要深入理解这些语法和规则,并且要严格遵循它们。
此外,理解VHDL的数据类型和信号赋值的原理也是非常重要的。
再次,VHDL的建模能力非常强大。
我们可以通过使用VHDL来描述各种各样的数字电路和系统,包括组合逻辑电路、时序逻辑电路、状态机等。
在编写VHDL代码时,我们可以使用各种逻辑门、触发器、运算器等各种元件来构建我们所需要的电路和系统。
通过合理、灵活地使用这些元件,我们可以实现非常复杂的功能。
最后,学习VHDL需要进行大量的实践。
VHDL是一种实践性非常强的学科,需要通过实际编写代码来加深对语言的理解和掌握。
在这个学期的学习中,我通过完成实验和项目,不断地练习编写VHDL代码。
在实践中,我发现通过实际编写代码,我们可以更加深入地理解VHDL的语法和规则,也可以更加有利于我们理解和掌握VHDL的建模能力。
总之,学习VHDL需要理解并熟练掌握语言的语法和规则,需要具备良好的抽象建模能力,并且需要进行大量的实践。
通过对VHDL的学习,我不仅提高了对数字电路和系统的理解,还培养了我在硬件设计方面的能力。
我相信在今后的学习和工作中,VHDL的知识和技能将会对我有很大的帮助。
vhdl实验报告
vhdl实验报告VHDL实验报告引言:VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和仿真。
本篇实验报告将介绍我在VHDL实验中的学习和实践经验,包括实验目的、实验过程、实验结果以及对VHDL的理解和展望。
一、实验目的VHDL实验的主要目的是让我们掌握VHDL语言的基本语法和使用方法,能够利用VHDL描述数字电路,并通过仿真和综合工具进行验证和实现。
通过这些实验,我们可以深入了解数字电路的原理和设计方法,提高我们的逻辑设计能力和工程实践能力。
二、实验过程在实验过程中,我们首先学习了VHDL的基本语法,包括实体声明、端口声明、信号声明等。
然后,我们通过实例学习了VHDL的建模方法,包括组合逻辑电路的建模和时序逻辑电路的建模。
在组合逻辑电路的建模中,我们学习了使用逻辑运算符和条件语句描述电路的功能;在时序逻辑电路的建模中,我们学习了使用过程语句和时钟信号描述电路的状态转换。
在学习了VHDL的基础知识后,我们开始进行实验设计。
我们选择了一个简单的数字电路,如4位加法器,来进行实验验证。
首先,我们通过VHDL语言描述了加法器的功能和结构,包括输入端口、输出端口和中间信号。
然后,我们使用仿真工具进行了功能仿真,验证了加法器的正确性。
接着,我们使用综合工具将VHDL代码综合成门级电路,并进行了时序仿真和时序优化,验证了加法器的时序正确性和性能。
三、实验结果通过实验,我们成功地实现了4位加法器的功能,并验证了其正确性和性能。
在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。
在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。
vhdl学习笔记
电子系统设计学习笔记经过一个学期的数字逻辑电路实验以及电子系统设计学习,我对VHDL语言的知识从无到有,从少到多,其中要归因于多次试验以及设计时间。
现将学习过程中得到的一些经验积累如下:1、关于设计方法可以将传统的自下而上方法和VHDL的至上而下方法综合。
先使用maxplus的原理图设计功能画出原理图,进行波形仿真。
再综合图中的各接口和原件进行行为描述。
以一个时序脉冲与整形电路为例:分析如下:输入端:clk,prnclrn,ent,enp,ldn,其中使能端prn与清除段clrn在实验中不发挥作用,可省略。
74161中的两个使能端和读取功能多余,也可以省略。
输出端:与图相同。
接线:三个计数器输出Q3,Q4,Q4b,Q5,,74641输出Q6,三周期输出Q7,Q8图中包含五进制、四进制、三进制和二进制计数器各一代码如下:USE IEEE.STD_LOGIC_1164.ALL;ENTITY exp5tx ISPORT(clk : IN STD_LOGIC;CP1,CP2,CP3,CP4,CP5,CP6 : OUT STD_LOGIC;Q3,Q4,Q4b,Q5,Q6,Q7,Q8 : BUFFER STD_LOGIC);//接线均使用buffer,方便调试,波形模拟成功后再改回signal END exp5tx;ARCHITECTURE DISTRIBUTER OF exp5tx ISBEGINPROCESS(clk,Q3,Q5)VARIABLE count_5 : STD_LOGIC_VECTOR(2 DOWNTO 0);VARIABLE count_2 : STD_LOGIC;VARIABLE count_4 : STD_LOGIC_VECTOR(1 DOWNTO 0);VARIABLE count_3 : STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINIF(clk'EVENT AND clk='1')THENIF(count_5="000")THENcount_5 := "001";Q3 <= '1';ELSIF(count_5="001")THENcount_5 := "010";Q3 <= '0';ELSIF(count_5="010")THENcount_5 := "011";Q3 <= '0';ELSIF(count_5="011")THENcount_5 := "100";Q3 <= '0';ELSIF(count_5="100")THENcount_5 := "000";Q3 <= '0';END IF;END IF; //五进制计数器IF(Q3'EVENT AND Q3='1')THENIF(count_2='0')THENcount_2 := '1'; Q4 <= '1';Q4b <= '0';ELSIF(count_2='1')THENcount_2 := '0'; Q4 <= '0';Q4b <= '1';END IF;END IF; //二进制计数器IF(Q3'EVENT AND Q3='1')THENIF(count_4="00")THENcount_4 := "01";Q5 <= '1';ELSIF(count_4="01")THENcount_4 := "10";Q5 <= '1';ELSIF(count_4="10")THENcount_4 := "11";Q5 <= '0';ELSIF(count_4="11")THENcount_4 := "00";Q5 <= '0';END IF;END IF; //四进制计数器IF(Q5'EVENT AND Q5='1')THENIF(count_3="00")THENcount_3 := "01"; Q6 <= '1';Q7 <= '0';Q8 <= '0';ELSIF(count_3="01")THENcount_3 := "10"; Q6 <= '0';Q7 <= '1';Q8 <= '0';ELSIF(count_3="10")THENcount_3 := "00"; Q6 <= '0';Q7 <= '0';Q8 <= '1';END IF;END IF; //三进制计数器END PROCESS;CP1 <= Q4b AND Q5 AND Q6;CP2 <= Q4b AND NOT Q5 AND Q6;CP3 <= Q4b AND Q5 AND Q7;CP4 <= Q4b AND NOT Q5 AND Q7;CP5 <= Q4b AND Q5 AND Q8;CP6 <= Q4b AND NOT Q5 AND Q8;//组合逻辑END DISTRIBUTER;这是学习vhdl过程中的一个程序,其中还有些缺点,比如没将每个模块分成单独的process等。
VHDL语言与EDA课程设计心得【模版】
湖南人文科技学院课程设计报告课程名称: VHDL语言与EDA课程设计设计题目:出租车自动计价器设计系别:专业:班级:学生姓名:学号:起止日期: 2011年6月13日~2011年6月26日指导教师:教研室主任:摘要随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。
出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。
一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。
根据预定的设计要求和设计思路,我们使用VHDL硬件描述语言设计了一个实际的基于Altera FPGA芯片的出租车自动计价器系统,介绍了该系统的电路结构和程序设计。
通过在QuartusII6.0软件中编译和下载测试,得到了仿真波形和关键的设计结果。
经过在实验箱上进行硬件测试,证明该出租车计价系统具有实用出租车计价器的基本功能,如能进一步完善,将可以实用化和市场化。
关键词:出租车自动计价器;VHDL; FPGA ;QuartusII6.0目录设计要求 01、方案论证与对比 01.1方案一 01.2方案二 (1)1.3两种方案的对比 (2)2、实验步骤和设计过程 (2)2.1计程模块 (2)2.2等待计时模块 (2)2.3计费模块 (2)3、调试与操作说明 (3)3.1QuartusII中的VHDL程序 (3)3.2程序的编译与及仿真波形 (6)3.3程序的下载与功能的测试 (7)4、课程设计心得体会 (8)5、元器件及仪器设备明细 (9)6、参考文献 (10)7、致谢 (11)出租车自动计价器设计设计要求设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元,行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)。
数字电路与逻辑设计实训课程学习总结基于Verilog的多功能计数器设计与实现
数字电路与逻辑设计实训课程学习总结基于Verilog的多功能计数器设计与实现数字电路与逻辑设计是计算机科学与技术专业的一门重要课程,通过学习这门课程,我深入了解了数字电路与逻辑设计的基本原理和Verilog语言的应用。
在实践中,我通过设计与实现基于Verilog的多功能计数器,不仅巩固了理论知识,而且提高了自己的实践能力和问题解决能力。
首先,在学习数字电路与逻辑设计的过程中,我了解到数字电路是基于二进制运算的电子电路系统,其中包括了门电路、触发器、寄存器等基本组件。
通过对这些组件的学习和理解,我能够准确地分析和设计各种数字电路电子产品。
其次,我学习了Verilog语言的基本语法和使用方法。
Verilog是一种硬件描述语言,可以用来描述数字电路的结构和功能。
通过学习Verilog语言,我可以使用模块化和层次化的设计思路来实现复杂的数字电路功能。
在实践中,我选择了设计和实现一个多功能计数器作为我的项目。
该多功能计数器能够实现多种计数模式,并且能够通过外部输入信号进行控制。
在设计的过程中,我首先进行了功能需求的分析和设计,然后结合Verilog语言的特点,采用模块化设计的思路,将计数器分为了多个子模块,分别实现不同的功能。
最后,我进行了仿真和综合验证,确保设计的正确性和稳定性。
在实现的过程中,我遇到了一些困难和问题,但通过查阅资料和与同学的讨论,我逐渐解决了这些问题。
例如,在设计过程中,我遇到了一些时序逻辑的问题,通过调整时钟信号和状态转移的顺序,最终解决了这些问题。
另外,在测试和验证的过程中,我遇到了一些功能异常的情况,通过对代码的仔细分析和调试,最终找到了问题的源头并进行了修复。
通过这个实训项目,我不仅深入理解了数字电路与逻辑设计的原理,还提高了我的实践能力和问题解决能力。
我学会了如何使用Verilog语言来描述和实现数字电路,如何进行功能需求的分析和设计,如何进行仿真和综合验证。
这对于我今后的学习和工作都具有重要的意义。
VHDL读书笔记
读书笔记本论文用VHDL硬件描述语言在MAX+PLUSⅡ的开发环境中进行所要设计的数字频率计。
使设计更加简单,易于调试和修改。
MAX+PLUSⅡ和QuartusⅡ都是支持VHDL语言计输入形式的软件,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
MAX+PLUSⅡ(Multiple Array and Programming Logic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。
Altera公司在推出各种CPLD的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代MAX+PLUS发展到第三代MAX+PLUSⅡ和第四代Quartus。
使用MAX+PLUSⅡ软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,MAX+PLUSⅡ就会自动将设计转换成目标文件下载到器件中去。
在Max+plusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。
Quartus II 是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。
QuartusII提供完善的 timing closure 和LogicLock™ 基于块的设计流程。
QuartusII design是唯一一个包括以timing closure 和基于块的设计流为基本特征的programmable logic device (PLD)的软件。
Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
vhdl编程的一些心得体会
vhdl编程的一些心得体会篇一:VHDL学习心得学习心得——《EDA技术实用教程》本学期对《EDA技术实用教程--VHDL版》的学习为我的专业知识学习打开了一个全新的窗口——微电子技术领域。
对EDA技术,我更是有了全新的认识。
微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体工艺水平的线宽已经达到了纳米级。
所以,集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展。
而现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。
EDA技术在进入21世纪后,得到了更大的发展。
嵌入式处理器软核的成熟,使得SOPC步入大规模应用阶段。
电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化。
同时,EDA 使得电子领域各学科的界限更加模糊,更加互为包容。
这些都利于设计人员利用EDA技术进行电子系统设计,如全定制或半定制ASIC设计,FPGA/CPLD开发应用和印制电路板。
从EDA技术的特点不难看出,相比于传统的数字电子系统或IC设计,EDA技术拥有独特的优势。
在传统的数字电子系统或IC设计中,手工设计占了较大的比例。
因此,也存在很多缺点。
例如:复杂电路的设计、调试十分困难;由于无法进行硬件系统仿真,如果某一过程存在错误,查找和修改十分不便;设计过程中产生大量文档,不易管理;可移植性差等。
相比之下,EDA技术有很大不同。
它运用HDL对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。
《EDA技术与VHDL》课程学习笔记
姓名:胡海侠学号:200920212036 班级:SJ0931《EDA技术与VHDL》课程学习笔记在学习本课程之前,我了解到这门课程是与数字电路有关,考虑到数字电路方面的知识已经忘得差不多了,再加上大学学习时候基础本来就不牢靠,所以就恶补了一下数字电路方面的知识。
通过对数字电路的学习,我能够基本上回想起老师上课讲的内容,对数字电路方面有了一个系统的认识,尽管还不是尽善尽美,但是对后期课程的学习已经没有什么障碍了。
那么经过不到一个星期的复习,我基本掌握了以下内容:1:逻辑代数的基本公式和定理,逻辑函数的化简方法和逻辑函数的基本表示方法(1)逻辑函数的基本公式和定理是进行公式化简的依据(2)逻辑函数的基本化简方法是公式化简法和图形化简法,其中图形化简方法中主要应用卡诺图化简的方法。
化简的结果通常为标准与或式(3)逻辑函数的基本表示方法有六种:真值表,卡诺图,函数式,逻辑图,波形图和VHDL 描述2:半导体二极管,三极管和MOS管是数字电路中的基本开关元件,半导体二极管是不可控的;半导体三极管是一种电流控制且具有放大特性的开关元件;MOS管是用电压进行控制的,也具有放大功能。
了解了CMOS和TTL集成门电路的外部特征——逻辑特性和电器特性。
逻辑特性即逻辑功能,如与门,或门,非门,与非门,或非门,与或非门等;电器特性有静态特性(主要是输入特性和输出特性)和动态特性(主要是传输延迟时间)。
3:通过对组合逻辑电路的学习,我知道组合逻辑电路是输出信号仅取决于当时的输入信号,而与原来所处的状态无关。
了解了组合逻辑电路的分析设计的方法。
并通过对加法器,数值比较器,译码器,数据选择器和分配器,只读存储器的学习,对设计过程有了更深的了解。
4:触发器的学习(1)基本触发器:把两个与非门或者或非门交叉连接起来,边构成了基本触发器(2)同步触发器:在基本触发器基础上,增加两个控制门和一个控制信号,就构成了同步触发器。
他的显著特征就是时钟电平直接控制(3)边沿触发器:把两个D触发器级联起来,便构成边沿D触发器,再加以改进就可以得到边沿JK触发器。
VHDL课程设计心得体会
这次EDA课程设计虽然时间较短但是收获普丰,使得我对HDL语言的理解与应用能力得到了较大的提升,让我认识到只要深入学习,提升的空间永远是存在的。
在本次课程设计中凸显了我的不足之处,比如软件运用不太熟练,对HDL 语言语法有诸多不清楚的认识,使在课程设计中遇到诸多困难。
但是好在通过查阅资料和老师同学的帮助得以解决,使课程设计顺利完成。
用HDL硬件描述语言的形式进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。
降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重的作用。
但在设计过程中也遇到了一些问题和困难:一、我自身的编程水平和软件水平需要提高,在本项目的设计过程中我遇到了很多问题,解决这些问题花费了我大量的时间,这反映出我对于Verilog语言的语法的理解依然不够。
二、在软件层面,QUARTUS的很多功能我依然不能熟练使用,这些功能非常强大软件功能我还没有熟练的掌握,这说明我仍然需要更多的学习。
比如刚开始编程时总会出现一些无法理解的语法问题,最初设计时使用的VHDL语言,钻研了很久也没办法得到正确的仿真图,之后再改用的Verilog语言进行编写的,并成功得到正确波形。
三、语言和软件只是工具,设计思想才是至关重要的核心。
四、自上而下的开发过程要优于自下而上的开发过程,如果在项目中先去规划顶层中各个模块要实现的功能和接口的对接,再按照先前的规划去完成底层的开发是一种非常有效率的做法。
在本设计的过程中,我学习了Verilog语言的基本语法,熟悉了Quartus II 的HDL文本设计流程全过程,掌握了课题的的设计方法以及它的仿真和硬件测试。
经过多次改进,本设计实现了课题要求的的基本功能,但由于开发板的逻辑单元有限,一些功能没法实现,这些都是需要完善的地方。
在实验箱上可以实现一些基本的功能,由于实验箱的管脚不够的原因只能实现部分的功能。
该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。
VHDL是一种硬件描述语言(课程总结)
VHDL是一种硬件描述语言,用于对电子电路和系统的行为进行描述。
VHDL是VHSIC Hardware Description Language的缩写。
所有的VHDL代码都可以仿真,但不是所有的VHDL代码都可以综合。
V ery high speed integrated circuitVHDL和V erilog HDL都与工艺和工具无关,可以方便的进行移植和重用。
可编程逻辑器件包括:复杂可编程逻辑器件(CPLD:Complex Programmable Logic Devices),现场可编程门阵列(FPGA:Field Programmable Gate Arrays)。
VHDL语言从根本上讲是并发执行的。
因此常称之为代码,而不是程序。
VHDL中,只有在进程(PROCESS)、函数(FUNCTION)、和过程(PROCEDURE)内部的语句才是顺序执行的。
第二章VHDL代码结构VHDL代码的三个基本组成部分:库(LIBRARY)声明、实体(ENTITY)、构造体(ARCHITECTURE)库声明:列出当前设计中需要的所有库文件实体:定义电路的I/O引脚;构造体:包含的代码描述电路要实现的功能。
库的建立有利于设计重用和代码共享同时使代码结构更加清晰常用库:IEEE库,Std库,work库std_logic_1164:当用到std_logic及其衍生类型时,需要声明;std_logic_arith:定义了signed和unsigned类型和相关算数运算和比较运算。
std_logic_signed:使std_logic_vector 类型的数据同signed一样执行。
std_logic_unsigned:std ,work库在程序中都是默认可见的,直接使用就可,不需要再对其进行声明;只有ieee库在使用前需要声明。
实体(ENTITY)用来描述电路所有的输入/输出引脚,端口的信号模式4种:IN,OUT,INOUT,BUFFER。
实训心得体会(通用6篇)
实训心得体会(通用6篇)实训心得体会1一周的实训已经过去了,我们在老师提供的实践平台上通过自己的实践学到了很多课本上学不到的宝贵东西,熟悉了对QuartusⅡ软件的一般项目的操作和学到了处理简单问题的基本方法,比如说实体、结构体的作用、保存的时候不能还有中文及文件名要和实体名相同等。
加深了对VHDL编程语言的理解,尤其是本课题中乘法器的设计让我更清楚进程、变量、信号的使用及它们之间的区别。
意识到了EDA课程设计的重要性以及团队合作对于设计的重要性,更重要的是掌握了VHDL语言的基本设计思路和方法,我想这些会对我今后的学习起到很大的助推作用。
此外,还要在今后的课本理论知识学习过程中要一步一个脚印的扎实学习,灵活的掌握和运用专业理论知识这样才能在以后出去工作的实践过程中有所成果。
在此次实训的过程中,我了解到了要加强培养动手能力,要明白理论与实践结合的重要性,只有理论知识也是不够的,只有把理论知识和实践相结合,才能真正提高我们的实际动手能力与独立思考的能力。
感谢学院给我们提供这次实训的机会,感谢瓮老师对我们的指导,他是为了教会我们如何运用所学的知识去解决实际的问题,此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
短暂的一周实训已经过去了,对于我来说这一周的实训赋予了我太多实用的东西了,不仅让我更深层次的对课本的理论知识深入了理解,而且还让我对分析事物的逻辑思维能力得到了锻炼,提高了实际动手能力,下面谈一下就这一周实训中我自己的一些心得体会。
实训心得体会2在学校领导的高度重视下,我们数控车工和普车实训取得了良好的成绩,使学生学习了数控车编程和普车理论知识,同时大大提高了实际操作能力,增强学生的安全文明生产的意识和企业意识。
实训期间我们的实训指导工作是以“安全第一”为思想教育指导,严格要求我们的学生要注意安全问题,要严格遵守车间市场的规章制度。
vhdl课程设计小结
vhdl课程设计小结一、教学目标通过本章的学习,学生应掌握VHDL(Very High Speed Integrated Circuit Hardware Description Language)的基本语法、基本结构和基本用法,能够运用VHDL对简单的数字电路进行描述和仿真。
具体来说,知识目标包括:1.掌握VHDL的基本语法和规则。
2.理解VHDL的基本结构和组成。
3.熟悉VHDL的基本用法和操作。
技能目标包括:1.能够编写简单的VHDL代码,对基本的逻辑门电路进行描述。
2.能够使用至少一种VHDL仿真工具,对编写出的代码进行仿真和测试。
情感态度价值观目标包括:1.培养学生对硬件描述语言的兴趣和好奇心。
2.培养学生独立思考、解决问题的能力。
二、教学内容本章的教学内容主要包括VHDL的基本语法、基本结构和基本用法。
具体安排如下:1.介绍VHDL的基本语法,包括数据类型、信号声明、实体声明、架构声明等。
2.讲解VHDL的基本结构,包括实体、端口、信号、进程等。
3.介绍VHDL的基本用法,包括逻辑门电路的描述、组合逻辑电路的描述、时序逻辑电路的描述等。
4.结合实际案例,讲解如何使用VHDL对数字电路进行描述和仿真。
三、教学方法为了提高学生的学习兴趣和主动性,本章将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
1.讲授法:用于讲解VHDL的基本语法和基本结构。
2.讨论法:用于探讨VHDL的用法和实际应用问题。
3.案例分析法:通过分析实际案例,让学生掌握VHDL对数字电路的描述和仿真。
4.实验法:让学生动手编写VHDL代码,使用仿真工具进行仿真,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《VHDL Primer》(第五版),作者:Peter Flake。
2.参考书:《数字电路设计与VHDL应用》。
3.多媒体资料:VHDL教程视频、实际案例视频等。
vhdl心得体会
vhdl心得体会VHDL是一种硬件描述语言,用于描述数字逻辑电路。
我在学习VHDL过程中,有一些心得体会。
首先,学习VHDL需要有坚实的数字逻辑基础。
VHDL是用于描述数字电路的语言,因此理解数字逻辑的原理和基本概念是非常重要的。
比如理解逻辑门、触发器、多路选择器等基本的数字逻辑元件的工作原理,才能够更好地用VHDL描述这些元件。
其次,学习VHDL需要注重练习和实践。
只是理论的学习是远远不够的,需要通过实践来巩固和应用所学的知识。
可以通过编写小的数字逻辑电路的VHDL代码来实践,比如实现一个简单的加法器、乘法器或者计数器。
通过不断地实践,可以更加熟悉VHDL的语法和规范,并且加深对数字逻辑的理解。
另外,在学习VHDL过程中,需要注重代码的规范和可读性。
VHDL是一种结构化的语言,代码的结构和组织对于后期的维护和调试非常重要。
可以通过使用合适的命名规范、缩进和注释来增加代码的可读性,避免出现混乱和不易理解的情况。
此外,掌握好VHDL的多种建模方法也是很重要的。
VHDL可以使用结构化建模、数据流建模或者行为建模等不同的方法来描述电路。
对不同的电路和设计要求,选择合适的建模方法是关键。
因此,需要深入理解这些建模方法的特点和使用场景,以便更好地应用在实际的设计中。
最后,理解VHDL中的一些高级特性和工具也是很有意义的。
VHDL提供了很多高级特性,比如泛型、过程、状态机等,可以帮助我们更好地描述和优化数字逻辑电路。
同时,VHDL还有一些支持工具,比如仿真工具、综合工具和布局工具等,可以帮助我们验证和优化设计。
掌握这些高级特性和工具,可以提高设计的效率和准确性。
综上所述,学习VHDL需要有坚实的数字逻辑基础,注重实践和练习,注重代码规范和可读性,掌握多种建模方法,了解VHDL中的高级特性和工具。
通过不断地学习和实践,我们可以更好地理解和应用VHDL,更好地完成数字逻辑电路的设计。
VHDL语言学习总结
VHDL语言学习总结jackhuan@(初学VHDL,欢迎批评指正)1 VHDL的程序结构一个VHDL程序包含实体entity、结构体architecture、配置configuration、包集package 和库library五部分。
实体,用于描述设计系统的外部接口信号;结构体,用于描述系统的行为,系统数据的流程或系统组织结构形式;实体+结构体=设计实体;实体是设计实体的表层设计单元,其功能是对这个设计实体与外部的电路接口进行描述,它规定了设计单元的输入、输出接口信号和引脚,是设计实体与外界的一个通信界面;结构体是用于描述设计实体的内部结构以及实体端口间的逻辑关系,结构体具体实现一个实体。
一个电路系统的程序设计只有一个实体,可以有多个结构体。
在实体中类属说明放在端口说明上端,而其他说明类型说明如数据的定义说明则放在端口定义的下面。
配置一般用来为实体指定结构体,由于在设计中没有用到配置,故没有做深入研究。
包集是库的一部分,用来存放库中具有类似功能或在某一个部件中使用的元件、函数或过程。
库是一个设计中封装所有元器件的总和。
2 VHDL与C++的结构类比上述部分可以和C++的工程管理方式做一简单比较。
C++中有类的声明部分(一般为.H文件)和实现部分(一般为.CPP文件)。
在程序的编写过程中,我们首先在一个.H文件中将类的成员变量和成员函数做定义,然后在.CPP中使用具体的代码实现它。
这样在应用这个类的其他程序代码中,一般在引用文件的开始加入如下语句:#include “***.h” //***代表我们要包含的文件名称就可以随意使用其内部的类和函数了。
VHDL有类似之处。
首先我们编写了*.VHD文件,内有实体entity和结构体architecture,开始还要引入库library和包package。
在我们使用其他元件时,通常在architecture中做元件例化。
例如要在myexp中例化元件myand,则:Architecture behave of myexp isSignal mysig1 : bit_vector(7 downto 0);…component myandport( din1: in bit;din2: in bit;dout:out bit);end component;begin…p1: myand port map(din1,din2,dout);…end behave;实际上元件例化就是对元件的包含,相当于在C++中#include的功能。
《EDA技术与VHDL》学习课程学习笔记
姓名:胡海侠学号:200920212036 班级:SJ0931《EDA技术与VHDL》课程学习笔记在学习本课程之前,我了解到这门课程是与数字电路有关,考虑到数字电路方面的知识已经忘得差不多了,再加上大学学习时候基础本来就不牢靠,所以就恶补了一下数字电路方面的知识。
通过对数字电路的学习,我能够基本上回想起老师上课讲的内容,对数字电路方面有了一个系统的认识,尽管还不是尽善尽美,但是对后期课程的学习已经没有什么障碍了。
那么经过不到一个星期的复习,我基本掌握了以下内容:1:逻辑代数的基本公式和定理,逻辑函数的化简方法和逻辑函数的基本表示方法(1)逻辑函数的基本公式和定理是进行公式化简的依据(2)逻辑函数的基本化简方法是公式化简法和图形化简法,其中图形化简方法中主要应用卡诺图化简的方法。
化简的结果通常为标准与或式(3)逻辑函数的基本表示方法有六种:真值表,卡诺图,函数式,逻辑图,波形图和VHDL描述2:半导体二极管,三极管和MOS管是数字电路中的基本开关元件,半导体二极管是不可控的;半导体三极管是一种电流控制且具有放大特性的开关元件;MOS管是用电压进行控制的,也具有放大功能。
了解了CMOS和TTL集成门电路的外部特征——逻辑特性和电器特性。
逻辑特性即逻辑功能,如与门,或门,非门,与非门,或非门,与或非门等;电器特性有静态特性(主要是输入特性和输出特性)和动态特性(主要是传输延迟时间)。
3:通过对组合逻辑电路的学习,我知道组合逻辑电路是输出信号仅取决于当时的输入信号,而与原来所处的状态无关。
了解了组合逻辑电路的分析设计的方法。
并通过对加法器,数值比较器,译码器,数据选择器和分配器,只读存储器的学习,对设计过程有了更深的了解。
4:触发器的学习(1)基本触发器:把两个与非门或者或非门交叉连接起来,边构成了基本触发器(2)同步触发器:在基本触发器基础上,增加两个控制门和一个控制信号,就构成了同步触发器。
他的显著特征就是时钟电平直接控制(3)边沿触发器:把两个D触发器级联起来,便构成边沿D触发器,再加以改进就可以得到边沿JK触发器。
VHDL键盘心得体会
课程设计一开始,老师先让我们熟悉了实验指导书上的实验一到实验六这六个实验,目的旨在于让我们熟悉课程设计的步骤以及相关的软硬件知识。
这六个实验相对来说比较简单,我与同学们基本上实现了仿真,只是我拿到的数据线有问题,实验的先前阶段我又没有发现这问题,所以一直没有实现仿真,后来问了下同学,才知道是数据线的问题,找到了症结所在,接下来的事就水到渠成了。
课程设计不可能不碰到一些问题比如:硬件的问题,软件的问题,程序的问题。
我们这次课程设计使用的是新的设备,所以基本上没有出现硬件故障,只是有个别同学没有看设备的使用说明书,在做实验时碰到了一些操作问题,像什么数字信号模块的时钟没有选对啊,实验箱的电源没有插好啊等等。
仿真软件也由于我们先前做了六个基本实验,碰到的问题也不到,哦,记起来了,有个问题困扰了我们很多同学,就是把实验箱与电脑连接的时候,发现实验箱与电脑无法正常的进行数据交换,我们很多同学开始都在想是不是实验箱坏了,后来发现是电脑没有找到硬件,经过扫描让电脑找到新的硬件后,问题也随之解决了。
碰到问题最多的是在编程的时候,众所周知,编写程序是项很枯燥无味的事,幸好我们有些例子程序,这样我们也不需要完全把程序编出来,只要编某个模块就行了,这次使用的实验箱上的接口有很多是共用一个端口,这给我们造成了很大的麻烦,要不是老师告诉使用动态扫描的方法,我们也许还不能实现这次课程设计的仿真。
我们可以通过按下外接键盘的按键,使实验箱上除了显示键盘的扫描码外播放音乐的基准音符,也可以通过12位LED灯的点亮数目来记录你按下了多少次按键。
设计之初,我对EDA知识的掌握应该说是还没入门,随着设计的深入,碰到了一系列的问题,为了实现仿真,我们就不得不去解决这一系列的问题,这样在解决问题的过程中我们不知不觉的就对EDA知识有了更深的了解,同时也巩固了以前的知识。
通过编程,我发现VHDL语言跟C语言、汇编语言在某些方面是相通的,所以无形之中我也对计算机语言有了更深的认识。
vhdl编程的一些心得体会
vhdl编程的一些心得体会篇一:VHDL学习心得学习心得――《EDA技术实用教程》本学期对《EDA技术实用教程--VHDL版》的学习为我的专业知识学习打开了一个全新的窗口一一微电子技术领域。
对EDA技术,我更是有了全新的认识。
微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体工艺水平的线宽已经达到了纳米级。
所以,集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展。
而现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。
EDA技术在进入21世纪后,得到了更大的发展。
嵌入式处理器软核的成熟,使得SOPC步入大规模应用阶段。
电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化。
同时,EDA 使得电子领域各学科的界限更加模糊,更加互为包容。
这些都利于设计人员利用EDA技术进行电子系统设计,如全定制或半定制ASIC设计,FPGA/CPLD开发应用和印制电路板。
从EDA技术的特点不难看出,相比于传统的数字电子系统或IC设计,EDA技术拥有独特的优势。
在传统的数字电子系统或IC 设计中,手工设计占了较大的比例。
因此,也存在很多缺点。
例如:复杂电路的设计、调试十分困难;由于无法进行硬件系统仿真,如果某一过程存在错误,查找和修改十分不便;设计过程中产生大量文档,不易管理;可移植性差等。
相比之下,EDA技术有很大不同。
它运用HDL对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。
VHDL总结
第1部分EDA技术概述一、EDA技术的含义:EDA是Electronic Design Automation (电子设计自动化)的缩写。
以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程器件的开发软件及实验开发系统为设计工具,自动完成用软件方式描述的电子系统到硬件的逻辑编译、逻辑简化、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真、直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门多学科融合的新技术。
二、EDA技术的实现目标及实现途径:1、实现目标完成专用集成电路ASIC或印制电路板PCB的设计和实现。
2、实现途径⑴. 超大规模可编程逻辑器件⑵. 半定制或全定制ASIC ⑶. 混合ASIC三、EDA技术的设计方法:(P8)传统的电路设计方法:自底向上的设计方法。
即首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,最后形成系统。
基于EDA技术的电路设计方法:自顶向下的设计方法。
自顶向下是指将数字系统的整体逐步分解为各个子系统和模块,若子系统的规模较大,则还需将子系统进一步分解为小的子系统和模块,层层分解,直至整个系统中各个子系统的关系合理,并便于工作于逻辑电路的设计和实现为止。
传统电路设计方法与采用EDA技术的电路设计方法的区别:1、设计方法不同:传统是自下而上的方法(Down-Top),EDA是自上而下的设计方法(Top-Down)。
2、传统设计基于电路板;EDA技术是基于芯片的设计方法。
3、描述方式不同:传统采用电路图为主,EDA以硬件描述语言为主。
4、设计手段不同:传统以手工设计为主,EDA设计为自动设计。
结论:EDA技术极大地降低硬件电路的设计难度,提高设计效率,是电子系统设计方法的质的飞跃!四、EDA技术的设计流程(P12)1、设计输入(原理图/HDL文本编辑)2、综合(自然语言综合/逻辑综合/行为综合/ 版图综合或结构综合)3、适配4、时序仿真和功能仿真(P14)5、编程下载6、硬件测试第2部分VHDL程序结构VHDL程序由实体(Entity)、结构体(Architecture)、库(Library)、程序包(Package)和配置(Configuration)5个部分组成。
vhdl+inout
最近在用VHDL设计简易CPU,想用总线式的,这就要求端口模式必须是INOUT,之前没接触过。
在网上搜到了博主jiangyi_love的一篇文章,转载过来,我们大家共同学习。
在工程应用中,双向电路是设计者不得不面对的问题.在实际应用中,数据总线往往是双向的.如何正确处理数据总线是进行时序逻辑电路设计的基础.在程序设计过程中,关键技术在于:实体部分必须对端口属性进行申明,端口属性必须为inout 类型,在构造体需要对输出信号进行有条件的高阻控制.在双向电路的处理问题上,常用的处理方式有两种,在介绍双向电路的处理方式之前,先看看双向电路的基本格式:ENTITY bidir_pin IS(bidir : INOUT std_logic;oe, clk, from_core : IN std_logic;to_core : OUT std_logic;……END bidir_pin;ARCHITECTURE behavior OF bidir_pin ISBEGINbidir <= from_core WHEN oe=…1‟ ELSE “ZZZZ”;to_core <= bidir;END behavior;该程序揭示了双向电路的处理技巧,首先在实体部分bidir属于双向信号,在端口定义时,端口属性为inout类型,即把bidir信号作为输入三态输出. 语句“bidir <= from_core WHEN oe=…1‟ ELSE “ZZZZ”;”表示bidir信号三态输出,语句”to_core <= bidir;”把bidir信号作为输入信号.由此可见,双向电路在程序设计中,didir输入当着普通的in类型,而在输出时,需要加一定的控制条件,三态输出.问题的关键在于:如何确定这个条件?1)双向信号作一个信号的输入,作另一信号的输出ENTITY bidir ISPORT(bidir : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);oe, clk : IN STD_LOGIC;from_core : IN STD_LOGIC_VECTOR (7 DOWNTO 0);to_core : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END bidir;ARCHITECTURE logic OF bidir ISSIGNAL a : STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL b : STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINPROCESS (clk)BEGINIF clk = '1' AND clk'EVENT THENa <= from_core;to_core <= b;END IF;END PROCESS;PROCESS (oe, bidir)BEGINIF( oe = '0') THENbidir <= "ZZZZZZZZ";b <= bidir;ELSEbidir <= a;b <= bidir;END IF;END PROCESS;END logic;这种设计方式叫做寄存双向信号的方法.本设计中bidir为双向信号,from_core为数据输入端,to_core为数据输出端,oe为三态输出使能,clk为读写数据的时钟.在程序设计中,需要定义两个signal a和b信号.a信号用于输入数据from_core的寄存器,b用于输出数据to_core的寄存器.采用寄存器的方法需要设计两个进程,一个进程把a,b信号在时钟的控制下负责端口的输入信号from_core和端口输出信号to_core的连接,这一步实现了寄存双向的功能.另外一个进程则负责信号a,b和双向口之间的赋值关系.本设计只揭示了简单的双向信号操作方式,即bidir 既可以作为from_core的输出,又可以作为to_core的输入2)双向信号既做输出又做输出上例是最简单的双向信号应用的特例.在实际的工程中,双向信号既做信号的输入,又做信号的输出,常见的数据总线就是这种操作模式.library IEEE;use IEEE.STD_LOGIC_1164.all;entity dir_data isport(clk : in STD_LOGIC;rst : in STD_LOGIC;rw : in STD_LOGIC;address : in STD_LOGIC_VECTOR(1 downto 0);data : inout STD_LOGIC_VECTOR(7 downto 0));end dir_data;architecture arc_dir of dir_data issignal data_in : STD_LOGIC_VECTOR(7 downto 0);signal data_out: STD_LOGIC_VECTOR(7 downto 0);signal reg_a: STD_LOGIC_VECTOR(7 downto 0);signal reg_b: STD_LOGIC_VECTOR(7 downto 0);begindata_in<=data;d1:process(clk,rst,rw)beginif rst='1' thenreg_a<= (others=>'0');reg_b<= (others=>'0');elsif clk'event and clk='1' then if rw='1' thenif address="00" thenreg_a<=data_in;elsif address="01" thenreg_b<=data_in;else null;end if;else null;end if;else null;end if;end process d1;d2:process(clk,rw,reg_a,reg_b) beginif clk'event and clk='1' thenif rw='0' thenif address="00" thendata_out<=reg_a;elsif address="01" thendata_out<=reg_b;else null;end if;else null;end if;else null;end if;end process d2;data<=data_out when (rw='0' and address(1)='0') else(others=>'Z');end arc_dir;针对这个程序,我编了一个仿真波形,仅供参考!在程序设计中,首先需要定义data_in, data_out, reg_a, reg_b四个signal,我们把data_in叫做输入寄存器,它是从双向信号data接收数据的寄存器,data_out叫做输出寄存器,它是向双向信号data发送信号的寄存器,reg_a和reg_b叫做操作寄存器,它们是在一定的时序控制下把data_in数据送给reg_a,reg_b,在一定的时序控制下从reg_a和reg_b读出数据的.这样的处理方式必须有两个进程,因为在architecture arc_dir of dir_data is和begin之间定义了data_in, data_out, reg_a, reg_b四个signal,它在同一进程内不支持既赋值,又调用,也就是说它不支持在d1进程中对信号reg_a, reg_b赋值,又在d1进程中又调用reg_a, reg_b.首先有语句”data_in<=data;”它表示输入寄存器无条件的接收双先信号的数据.在d1进程中,首先在rst信号有效时,对操作寄存器reg_a,和reg_b进行清零操作,然后在时钟(clk)的控制下,在写(rw)信号有效的情况下,对reg_a, reg_b寄存器在不同的地址控制下写入不同的data_in值.在d2进程中,在时钟(clk)的控制下,在读(rw)信号有效的时候,把不同地址的reg_a, reg_b的值送进data_out中.最关键的是最后一句:“data<=data_out when (rw='0' and address(1)='0') else (others=>'Z');”它表示双向信号的三态输出,而最最关键的是when后面的条件,如果条件限制太宽,就会错误占用双向信号总线,引起总线的误操作,如果条件限制太窄,输出寄存器的数据就不能够正确的送到数据总线上去,会引起数据的丢失.也就是说,只有正确的限制了when语句后面的条件,才能够把输出寄存器的数据正确地送到数据总线上去.仔细查看此条件,有如下的规律:when语句后的条件是操作寄存器写入输出寄存器的条件的公共条件.如:rw=‟0‟是操作寄存器的数据写入输出寄存器的读使能信号,address(1)是地址线的公共部分.在实际工程应用中,需要设计者在分配地址总线的时候掌握一定的技巧,尽量从地址的低位到到高位,保证地址总线有更多位的公共部分,比如只对四个寄存器操作时,地址线分配为”100”,”010”,”110”,”001”是不科学的,而”000”,”001”,”010”和”011”则是理想的.两者不同的是前者地址线没有公共部分,这样的设计无法用when语句对条件进行直接的控制,如果置之不理,由于列举不全,在逻辑综合时,电路会利用器件的乘积项和查找表的资源形成一个Latch, Latch不仅会把电路的时序变得复杂,而且电路存在潜在的危险性.虽然when语句后的条件不能够对条件进行直接的控制,但是可以使用枚举法一一把用到的地址线罗列出来,表示只有在这样的地址线的情况下才会用到数据总线,否则其他状态对数据总线送高阻,表示不占用数据总线. 总而言之,双向信号是程序设计中尤其重要的基础,设计者在设计程序的时候,要尤其注意,何时会占用数据总线,何时不占用数据总线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习心得
——《EDA技术实用教程》本学期对《EDA技术实用教程--VHDL版》的学习为我的专业知识学习打开了一个全新的窗口——微电子技术领域。
对EDA技术,我更是有了全新的认识。
微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体工艺水平的线宽已经达到了纳米级。
所以,集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展。
而现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。
EDA技术在进入21世纪后,得到了更大的发展。
嵌入式处理器软核的成熟,使得SOPC步入大规模应用阶段。
电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化。
同时,EDA使得电子领域各学科的界限更加模糊,更加互为包容。
这些都利于设计人员利用EDA技术进行电子系统设计,如全定制或半定制ASIC设计,FPGA/CPLD开发应用和印制电路板。
从EDA技术的特点不难看出,相比于传统的数字电子系统或IC设计,EDA 技术拥有独特的优势。
在传统的数字电子系统或IC设计中,手工设计占了较大的比例。
因此,也存在很多缺点。
例如:复杂电路的设计、调试十分困难;由于无法进行硬件系统仿真,如果某一过程存在错误,查找和修改十分不便;设计过程中产生大量文档,不易管理;可移植性差等。
相比之下,EDA技术有很大不同。
它运用HDL对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。
由于有各类库的支持,能够完成各种自动设计过程。
它极大地简化了设计文档的管理,逻辑设计仿真测试技术也日益强大。
VHDL在现在的EDA设计中使用最多,也拥有几乎所有主流EDA工具的支持。
VHDL作为一个规范语言和建模语言,不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。
这种方法显然对于电路自动设计是一个极大的推进。
它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
EDA技术良好的可移植性与可测试性,将所有设计环节纳入统一的自顶向下的设计方案中。
它不但在整个设计流程上充分利用计算机的自动设计能力、在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。
书中通过大量的图示对PLD硬件特性与编程技术进行了形象的讲解,不仅融合了之前学习的关于电路设计的知识还将EDA的技术加入其中。
对VHDL语言的详尽讲解更是让我深刻理解了VHDL语言的编程原理。
由于本门课程是一门硬件学习课程,所以实验必不可少。
通过课程最后实验,我体会一些VHDL 语言相对于其他编程语言的特点。
相对于其它计算机语言的学习,如C 或汇编语言,VHDL 具有明显的特点。
这不仅仅是由于VHDL 作为一种硬件描述语言的学习需要了解较多的数字逻
辑方面的硬件电路知识,包括目标芯片基本结构方面的知识更重要的是由于VHDL 描述的对象始终是客观的电路系统。
由于电路系统内部的子系统乃至部分元器件的工作状态和工作方式可以是相互独立、互不相关的,也可以是互为因果的。
这表明,在任一时刻,电路系统可以有许多相关和不相关的事件同时并行发生。
例如可以在多个独立的模块中同时入行不同方式的数据交换和控制信号传输,这种并行工作方式是任何一种基于CPU 的软件程序语言所无法描绘和实现的。
传统的软件编程语言只能根据CPU 的工作方式,以排队式指令的形式来对特定的事件和信息进行控制或接收。
在CPU 工作的任一时间段内只能完成一种操作。
因此,任何复杂的程序在一个单CPU 的计算机中的运行,永远是单向和一维的。
因而程序设计者也几乎只需以一维的思维模式就可以编程和工作了。
VHDL 虽然也含有类似于软件编程语言的顺序描述语句结构,但其工作方式是完全不同的。
软件语言的语句是根据CPU 的顺序控制信号,按时钟节拍对应的指令周期节拍逐条运行的,每运行一条指令都有确定的执行周期。
但
VHDL 则不同,从表面上观,VHDL 的顺序语句与软件语句有相同的行为描述方式,但在标准的仿真执行中有很大的区别。
VHDL 的语言描述只是综合器赖以构成硬件结构的一种依据,但进程语句结构中的顺序语句的执行方式决非是按时钟节拍运行的。
实际情况是其中的每一条语句的执行时间几乎是0 (但该语句的运行时间却不一定为0),即1000 条顺序语句与10 条顺序语句的执行时间是相同的。
在此,语句的运行和执行具有不同的概念(在软件语言中,它们的概念是相同),的执行是指启动一条语句,允许它运行一次,而运行就是指该语句完成其设定的功能。
通过实验,我认识到理论要与实际结合,培养动手动脑能力的重要性,做事情要抱着一丝不苟的态度,这样才能做好事情。
同时也入一步了解到EDA 的强大之处,硬件电路的优秀的地方,对硬件方面更感兴趣了。
这门课程的学习,为我以后的专业知识的学习打下了良好的基础。