北理VHDL硬件描述语言实验(四次全)
- 格式:pdf
- 大小:646.63 KB
- 文档页数:30
本科实验报告实验名称:VHDL语言及集成电路设计实验课程名称:VHDL语言及集成电路设计实验时间:2014.5任课教师:桂小琰实验地点:4-427实验教师:任仕伟实验类型:□原理验证□综合设计□自主创新学生姓名:学号/班级:组号:学院:信息与电子学院同组搭档:专业:电子科学与技术成绩:实验一:带有异步复位端的D触发器一、实验目的(1)熟悉linux操作环境和modelsim软件环境(2)理解时序逻辑和组合逻辑电路的区别(3)理解并行语句和顺序语句(4)用VHDL语言编写一个带有异步复位端的D触发器及其测试文件二、实验原理(1)组合逻辑和时序逻辑○1组合逻辑电路当前输出的值仅取决于当前的输入,不需要触发器等具有存储能力的逻辑单元,仅仅使用组合逻辑门○2时序逻辑电路的当前输出不仅取决于当前的输入,还与以前的输入有关,这类电路中包括寄存器等元件,也包括组合逻辑电路,寄存器通过一个反馈环和组合逻辑模块相连。
触发器便是属于时序逻辑电路(2)并行和顺序代码从本质上讲,VHDL代码是并发执行的。
只有PROCESS,FUNCTION或PROCEDURE内的代码才是顺序执行的。
当它们作为一个整体时,与其他模块之间又是并发执行的。
以下是3个并发描述语句(stat1,stat2和stat3)的代码,会产生同样的电路结构。
stat1 stat3 stat1stat2 = stat2 = stat3 = 其他排列顺序stat3 stat1 stat2(3)并行语句——进程(PROCESS)○1语法结构:[进程名: ]PROCESS (敏感信号列表)[变量说明语句]…BEGIN…(顺序执行的代码)…END PROCESS [进程名];○2PROCESS 的特点1多进程之间是并行执行的;2进程结构内部的所有语句都是顺序执行的;3进程中可访问结构体或实体中所定义的信号;4进程的启动是由敏感信号列表所标明的信号来触发,也可以用WAIT语句等待一个触发条件的成立。
Verilog HDL实验报告学院:应用科学学院班级:电科13-2班姓名:学号:实验一组合逻辑电路设计(1)实验目的(1)熟悉FPGA设计流程;(2)熟悉DE2开发板的基本元件使用(开关、发光二极管);(3)学习基本组合逻辑元件的Verilog HDL设计以及实现(数据选择器);(4)掌握连续赋值语句使用;实验内容本实验的目的是学习如何连接一个简单的外部输入、输出器件到FPGA 芯片以及如何在FPGA器件上实现逻辑电路控制简单外部器件。
考虑使用DE2开发板上拨动开关SW17-0(toggle Switch)作为电路的输入。
使用发光二极管(Light Emitt-ing Diodes,LEDs)和7段显示数码管(7-segment Display)作为电路的输出。
第1部分连续赋值语句步骤1、新建Quartus II工程,选择Cyclone II EP2C35F672C6作为目标芯片,该芯片是DE2开发板上的FPGA芯片;2、编写Verilog HDL代码加入到Quaruts II工程;3、引脚分配,并编译工程该工程;4、将编译好的电路下载到FPGA器件。
扳动拨动开关观察相应的发光二极管显示,验证电路功能是否正确;代码module part1(input wire[2:0]SW,output wire LEDR);wire r_g,s_g,qa,qb;and u1(r_g, SW[0], SW[1]);and u2(s_g, SW[1], SW[2]);nor u3(qa, r_g, qb);nor u4(qb, qa, s_g);assign LEDR = qa;endmodule第2部分简单的数据选择器步骤1 .新建Quartus II工程;2.在工程中加入8位宽的2选1数据选择器Verilog HDL代码。
使用DE2开发板上的SW17作为输入s,开关SW7-0作为输入X,SW15-8作为输入Y。
硬件描述语言实验附录姓名:xxx学号:xxx指导教师:xxx目录硬件描述语言实验附录 (1)实验1.三输入与门电路实验 (2)实验2. 三—八译码器实验 (3)实验3. D触发器实验 (4)实验4. 分频器实验 (5)实验5. 状态机实验 (8)实验1.三输入与门电路实验--三输入与门电路threeinput--姓名:王定--学号:1306034248--中北大学LIBRARY IEEE; --调用库USE IEEE.STD_LOGIC_1164.ALL;--库文件--------------------------------------------------------------ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入B: IN STD_LOGIC; --输入端口,个位写入使能C: IN STD_LOGIC; --输入端口,十位写入使能CO: OUT STD_LOGIC); --输出端口,溢出标志END ENTITY threeinput; --结束端口定义--------------------------------------------------------------ARCHITECTURE RTL OF threeinput IS--定义结构体BEGINPROCESS(A,B,C) IS --开始,必须带上BEGINCO<=A AND B AND C ;END PROCESS;END ARCHITECTURE RTL; --结束结构体表1. 三输入与门电路VHDL实验代码图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出实验2. 三—八译码器实验--王定--2015年11月25日--3线-8线译码器LIBRARYIEEE; --调用库USEIEEE.STD_LOGIC_1164.ALL; --库文件-------------------------------------------------------------ENTITYthreetoeightISPORT(DA TAIN:INSTD_LOGIC_VECTOR(2DOWNTO0);--数据输入DA TAOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--数据输出ENDENTITYthreetoeight; --结束实体-------------------------------------------------------------ARCHITECTUREBEHA VEOFthreetoeightIS--结构体BEGIN --不能漏掉PROCESS(DATAIN) --数据输入BEGIN --开始,不能漏掉CASEDATAINIS --情况判定WHEN"000"=>DA TAOUT<="00000001";WHEN"001"=>DA TAOUT<="00000010";WHEN"010"=>DA TAOUT<="00000100";WHEN"011"=>DATAOUT<="00001000";WHEN"100"=>DA TAOUT<="00010000";WHEN"101"=>DA TAOUT<="00100000";WHEN"110"=>DATAOUT<="01000000";WHEN"111"=>DA TAOUT<="10000000";WHENOTHERS=>null;ENDCASE;ENDPROCESS;ENDBEHA VE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINindata <= c & b & a;PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THENCASE indata ISWHEN "000" => y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011";WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111";WHEN "111" => y <= "01111111";WHEN OTHERS=>y<= "XXXXXXXX";END CASE;ELSEY <= "11111111";END IF;END PROCESS;END rtl;表2. 三—八译码器VHDL实验代码图2. 三—八译码器仿真波形图--异步复位/置位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff3 ISPORT(clk,d,clr,pset:IN STD_LOGIC;q : OUT STD_LOGIC);END dff3;ARCHITECTURE rtl OF dff3 ISBEGINPROCESS (clk,pset,clr)BEGINIF (pset='0') THENq<='1';ELSIF (clr='0') THENq<='0';ELSIF (clk'EVENT AND clk='1') THENq<=d;END IF;END PROCESS ;END rtl; --同步复位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff4 ISPORT(clk,d,clr:IN STD_LOGIC;q : OUT STD_LOGIC );END dff4;ARCHITECTURE rtl OF dff4 ISBEGINPROCESS (clk)BEGINIF (clk'EVENT AND clk='1') THENIF (clr='0') THENq<='0';ELSEq<=d;END IF;END IF;END PROCESS ;END rtl;表3. 异步和同步D触发器VHDL实验代码图3. 异步触发器仿真波形图图4. 同步触发器仿真波形图--四分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;----------------------------------------------ENTITY clk_div ISPORT(clk: IN STD_LOGIC;--时钟输入clk_div2: OUT STD_LOGIC;clk_div4: OUT STD_LOGIC;clk_div8: OUT STD_LOGIC;clk_div16: OUT STD_LOGIC);END ENTITY clk_div;---------------------------------------------------ARCHITECTURE rtl OF clk_div ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义一个四位的信号BEGINPROCESS(clk)BEGINIF(clk' event AND clk ='1') THEN--上升沿到来IF (count="1111") THEN--达到最大计数值count<="0000"; --置零ELSEcount<=count+1; --计数END IF;END IF;END PROCESS;clk_div2<=count(0); --2分频clk_div4<=count(1); --4分频clk_div8<=count(2); --8分频clk_div16<=count(3); --16分频END rtl;表4. 四分频器VHDL实验代码图5. 四分频器仿真波形图TMP1<= '0'; --置0,带入语句滞后ELSETMP1<= '1'; --置1END IF;END IF;END IF;END PROCESS;---------------------------------------------PROCESS(CLKIN,RST)BEGINIF RST ='1'THEN --复位有效COUNT2 <= "00000000"; --立即清零TMP2<= '1';ELSIF CLKIN'EVENT AND CLKIN='0' THEN --下降沿到来IF COUNT2 = "00000100" THEN --100==4(5个数据)COUNT2 <= "00000000";ELSECOUNT2 <= COUNT2 + 1;IF COUNT2 < "00000010" THEN --10==2(三个下降沿),小于三个上升沿时,始终置0,三个下降沿对应6分频TMP2<= '1';ELSETMP2<= '0';END IF;END IF;END IF;END PROCESS;END RTL;--信号是等待整个进程结束完后,再赋值图6. 五分频器仿真波形图实验5. 状态机实验ST <= S3; END IF; OP <= '1'; WHEN S3=> IF X = '0' THEN ST <= S3; ELSE ST <= S0; END IF; OP <= '0'; END CASE; END IF; END PROCESS STATE_COMP;END ARCHITECTURE A;END IF; END CASE; END IF;END PROCESS state_comp; END a;表6. moore 与mealy 状态机VHDL 实验代码图7. moore 型状态机VHDL 实验代码图8. mealy 型状态机仿真波形图。
目录第一部分 QuartusⅡ CPLD开发系统简介 (1)第二部分 基础验证实验 (16)实验1 译码器及译码显示电路设计 (16)实验2 编码器及数据选择器设计 (20)实验3 加法器设计 (23)实验4 乘法器设计 (26)实验5 触发器设计 (34)实验6 寄存器设计 (39)实验7 移位寄存器设计 (41)实验8 计数器设计 (44)实验9 可预置数的计数器设计.....错误!未定义书签。
第三部分 设计型实验...............错误!未定义书签。
实验1 频率计设计...............错误!未定义书签。
实验2 多功能数字钟设计.........错误!未定义书签。
实验3 彩灯控制器设计...........错误!未定义书签。
实验4 交通灯控制器设计.........错误!未定义书签。
第一部分 QuartusⅡ CPLD开发系统简介1.1 概述ALTERA公司的CPLD开发系统目前主要MAX+PLUSⅡ和QuartusⅡ两种,其中MAX+PLUSⅡ在前面几章内容已经做了详细介绍。
QuartusⅡ的用途与MAX+PLUSⅡ是一致的也是解决CPLD/FPGA开发过程中的编辑、编译、综合及仿真等内容。
目前最高版本为QuartusⅡ2.1,是目前CPLD/FPGA开发工具中较为理想的综合、仿真软件。
具有许多优良的特性。
1、承了MAX+PLUSⅡ的优点:图形输入依然形象,图形符号与MAX+PLUSⅡ符号一样符合数字电路的特点,大量74系列器件符号使初学者在较短的时间内利用图形编辑设计出需要的电路。
文本输入几乎与MAX+PLUSⅡ相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。
底层编辑仍然采用Chipview方式,管脚排列位置映射了实际器件管脚,简单的鼠标拖放即可完成底层编辑。
2、持的器件更多:除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K等MAX+PLUSⅡ已支持的器件外,还支持PEX20K、APEX20KE,APEXⅡ、EXCALIBUR-ARM、Mercury、Stratix等MAX+PLUSⅡ下无法支持的大容量高性能的器件。
《VHDL硬件描述语言》课程教学大纲课程代码:ABJD0414课程中文名称: VHDL硬件描述语言课程英文名称:Very-High-Speed Integrated Circuit HardwareDescription Language课程性质:必修课程学分数:2学分课程学时数:32学时授课对象:自动化专业本课程的前导课程:电路,模拟电子,C语言程序设计一、课程简介本课程是电类专业的专业基础课,要求学生通过本课程的学习和实验,初步掌握常用EDA工具的使用方法、FPGA的开发技术以及VHDL语言的编程方法。
能比较熟练地使用QuartusII等常用EDA软件对FPGA和CPLD作一些简单电路系统的设计,同时能较好地使用VHDL语言设计简单的逻辑电路和逻辑系统,学会行为仿真、时序仿真和硬件测试技术,为现代EDA工程技术的进一步学习,ASIC器件设计以及超大规模集成电路设计奠定基础。
作为一门专业基础课,除了为现代电子线路课程,软件无线电课程奠定理论和实践方面的基础外,还是其他一些课程的先修课,如微电子导论、现代ASIC设计、硬件描述语言仿真/综合器设计、大规模集成电路设计等。
二、教学基本内容和要求(一)概论介绍现代EDA技术,VHDL概况,介绍自顶向下的系统设计方法以及FPGA和CPLD的基本技术,要求对现代EDA技术及实现工具的使用方法和发展情况有一初步了解。
重点与难点:EDA技术的设计工具(二)EDA设计流程及工具首先介绍基于EDA软件的FPGA/CPLD开发流程和ASIC设计流程,然后分别介绍与这些设计流程中各环节密切相关的EDA工具软件,最后简述QuartusII的基本情况和IP。
重点与难点:EDA仿真设计流程。
(三)FPGA/CPLD结构与应用主要介绍几类常用的大规模可编程逻辑器件的结构和工作原理。
对CPLD的乘积项原理和FPGA的查找表原理分别进行剖析。
最后介绍相关的编程下载和测试技术。
重点与难点:FPGA/CPLD的工作作原理及编程技术。
实验一秒表计数器的设计实验目的:本实验通过设计四种频率可选的数字时钟系统, 以达到熟悉VHDL 语言编程语法、设计思路和熟练掌握Quartus II 开发软件的目的。
二、实验内容:该数字时钟的显示格式如下所示: HH: MM: SS, 其中HH表示时计数的两位, MM表示分计数的两位, SS表示秒计数的两位。
本系统输入信号分别为复位信号rst(高有效)、sel(两位信号, 分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节, 譬如当时间为08:59:30时, 时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。
该时钟系统可以通过Sel信号时钟运行的快慢。
三、实验流程:通过对实验内容的分析: 可以考虑时钟系统的可由三部分组成: 1.分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现, 同学可以回想一下实验1中是如何实现计数器电路的设计), 该模块主要产生2.4.8、16分频的时钟信号;2.多路选择器:在VHDL中多路选择器为组合逻辑, 可以有多种实现方法, 在这里主要选用了case语句来实现。
该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3.时钟控制器:该模块比较复杂, 主要实现功能是实现一个24小时的计时。
当时间为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00, 计时中多数计数为加1操作, 有几个特殊状态需要重点考虑:当时间产生分进数时, 譬如上例。
当时间产生时进数时, 譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时, 譬如00:59:59是个的下一个状态为01:00:00。
当时间产生天进数时, 譬如23:59:59的下一个状态为00:00:00。
四、仿真要求:1、本次试验的结果全部采用功能仿真分析:在结果图中能够看到让复位信号rst为有效的情况下, 所有的输出为00:00:00;2.当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2.4.8、16倍clk_in的时钟周期;3.可以看到完整的计时周期00:00:00->23:59:59->00:00:00。
题目:硬件描述语言实验四:四位加法器姓名:***** 学号: ******地点:主楼402 时间: 3月21日一、实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。
二、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
三、设计要求:采用三种方式设计一个四位加法器,实体名称分别为“adder4”、“adder4_2”、和“adder_3”,四位加法器的引脚与功能如下表。
端口模式端口名数据类型说明in (输入)astd_logic_vector(3 downto 0)加数b 加数ci std_logic 低位进位out (输出)s std_logic_vector(3 downto 0) 和co std_logic 高位进位四、实验步骤:1、采用寄存器传输的描述方式:首先新建一个工程,命名为“adder4”,然后编辑代码。
注意在模块内部(构造体说明部分)需要定义三个连接线,定义语句为:signal c0,c1,c2 : std_logic代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(a,b : in std_logic_vector (3 downto 0);ci : in std_logic;s : out std_logic_vector (3 downto 0);co : out std_logic);end entity;architecture rtl of adder4 issignal c0,c1,c2 : std_logic;begins(0) <= a(0) xor b(0) xor ci;c0<= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);s(1)<= a(1) xor b(1) xor c0;c1<= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0);s(2)<= a(2) xor b(2) xor c1;c2<= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1);s(3)<= a(3) xor b(3) xor c2;co<= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2); end rtl;仿真波形图如下:仿真电路图如下:s~1c0~0c0~1c0~3c0s~3c1~0c1~1c1~3c1s~5c2~0c2~1c2~3c2s~7co~0co~1co~3co~4cicoa[3..0]b[3..0]s[3..0]由上图可知设计是正确的。
VHDL与硬件描述语言VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,被广泛应用于数字电路和系统的设计、仿真和验证中。
本文将介绍VHDL的基本概念、语法和应用,以及其在硬件设计中的重要性和优势。
一、VHDL的基本概念与语法VHDL是由美国国防部下属的VHSIC(Very High Speed Integrated Circuits)计划发起的硬件描述语言标准化工作中发展起来的,它源于Ada语言,并在此基础上进行了修改和扩展。
VHDL采用了面向对象的设计思想,通过描述硬件的结构和行为,实现了对数字系统的高层次抽象。
VHDL的基本元素包括实体(entity)、结构(architecture)和配置(configuration)。
实体定义了模块的接口和信号,结构描述了模块内部的组织和连接关系,配置用于将不同实体和结构进行绑定。
此外,VHDL还提供了丰富的数据类型、控制结构和函数库,以支持复杂的逻辑运算和算术操作。
VHDL代码的编写需要遵循一定的语法规则,如正确使用关键字、语句结束符号等。
此外,注释和缩进等规范的使用可以提高代码的可读性和可维护性。
二、VHDL的应用1. 数字电路设计VHDL在数字电路设计中被广泛应用,通过使用VHDL语言,设计人员可以描述和验证各种数字逻辑电路,包括组合逻辑电路和时序逻辑电路。
借助VHDL仿真工具,可以进行功能仿真、时序仿真和行为仿真,验证设计的正确性和性能。
2. 系统级设计除了用于电路级设计,VHDL还可以用于系统级设计。
通过对模块的整合和功能描述,可以搭建更为复杂的系统,并在此基础上进行仿真和验证。
VHDL支持高级抽象和层次化设计,使得系统级设计更加灵活和可重用。
3. ASIC和FPGA设计VHDL在应用特定的集成电路(ASIC)和现场可编程门阵列(FPGA)的设计中,具有非常重要的地位。
ASIC是在集成电路制造厂中进行定制化设计和生产的芯片,而FPGA则是可以在现场进行编程和配置的可重构芯片。
硬件课程设计实验报告一、全加器设计1、实验目的(1)了解四位全加器的工作原理。
(2)掌握基本组合逻辑电路的FPGA实现。
(3)熟练应用Quartus II进行FPGA开发。
2、实验原理全加器是由两个加数X i和Y i以及低位来的进位C i-1作为输入,产生本位和S i以及向高位的进位C i的逻辑电路。
它不但要完成本位二进制码X i和Y i相加,而且还要考虑到低一位进位C i-1的逻辑。
对于输入为X i、Y i和C i-1,输出为S i和C i的情况,根据二进制加法法则可以得到全加器的真值表如下表所示:全加器真值表由真值表得到S i和C i的逻辑表达式经化简后为:这仅仅是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。
i3、实验内容本实验要完成的任务是设计一个四位二进制全加器。
具体的实验过程就是利用实验系统上的拨动开关模块的K1~K4作为一个加数X输入,K5~K8作为另一个加数Y输入,用LED模块的LED1~LED8来作为结果S输出,LED亮表示输出‘1’,LED灭表示输出‘0’。
实验箱中的拨动开关、LED与FPGA的接口电路,以及拨动开关、LED 与FPGA的管脚连接在以前的实验中都做了详细说明,这里不在赘述。
4、实验现象与结果以设计的参考示例为例,当设计文件加载到目标器件后,拨动相应的拨动开关,输入两个四位的加数,则在LED灯上显示这两个数值相加的结果的二进制数。
5、实验报告(1)出不同的加数,绘仿真波形,并作说明。
(2)在这个程序的基础上设计一个八位的全加器。
(3)在这个程序的基础上,用数码管来显示相乘结果的十进制值。
(4)将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
二、七段数码显示设计1、七段显示基本原理七段显示器,在许多产品或场合上经常可见。
其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、B、C、D、E、F。
VHDL语言简介+VHDL语言编程实验VHDL语言简介一、VHDL语言基本概况VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,为标准硬件描述语言,是美国IEEE标准协会于1987年公布的通用工业标准硬件描述语言,1995年,我国将VHDL 作为EDA硬件描述语言的国家标准,用语言的方式而非图形等方式描述硬件电路。
VHDL主要用于描述数字系统的结构、行为、功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言基本特点:(1)是IEEE的一种标准,语法比较严格,便于使用、交流和推广;(2)具有可读性,既可以被计算机接受,也容易被人们所理解;(3)可移植性好。
在不同的平台上可方便移植;(4)描述能力强,覆盖面广。
支持从逻辑门层次的描述到整个系统的描述;(5)是一种高层次的、与器件无关的设计。
设计者没有必要熟悉器件内部的具体结构;(6)可以设计所有存在的硬件集成电路;(7)设计硬件电路非常灵活,不受现有硬件电路限制;(8)设计方式灵活多样:方程表达、真值表表达、条件转换表达等等。
二、VHDL语言的结构组成VHDL语言程序的电路基本结构一般由库程序包说明、实体说明(Entity Declaration)和结构体(Architecture Body)三部分构成。
1. 库和程序包说明(Library)库是专门存放预编译程序包(Package)的地方,它们可以在其它设计中被调用。
实验报告课程名称Experimentsfor the Course “Principles and Applications of Programmable Device”实验项目名称Experiment four: Complex Circuit Design实验类型Confirmatory experiment 实验学时 2 班级20100521 学号2010052104 姓名邝祥指导教师王向红实验室名称水声楼511 实验时间2013.06.24实验成绩预习部分实验过程表现实验报告部分总成绩教师签字日期哈尔滨工程大学教务处制实验报告相关要求实验是理论联系实际的重要环节,实验报告必须在科学实验的基础上进行,实验报告的撰写是知识系统化的吸收和升华的过程,实验报告应该体现完整性、规范性、正确性、有效性。
现将撰写实验报告的有关内容说明如下:1.实验项目名称2.实验目的本次实验所涉及并要求掌握的知识点,要培养哪方面的能力、达到什么样的效果等。
3.实验内容与实验步骤要完成的实验内容、应用(或涉及)的原理、设计实验数据表格及具体实验步骤等。
4.实验环境实验所使用的器件、仪器设备名称及规格等。
5.实验过程与分析根据具体实验,记录、整理相应数据表格、绘制曲线、波形图等,并进行误差分析;详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。
6.实验结果总结对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。
7.教师评分原则实验项目成绩应综合以下三部分给出。
1.预习部分:学生在上实验课之前应认真预习,准备实验相关材料,可以是预习报告,也可以是实验报告中的需要学生上课前完成的部分;2.实验过程表现:主要考查学生在实验过程中的动手能力、解决问题的能力和实验完成情况等;3.实验报告部分:实验报告应书写工整、内容全面、原始记录完整、图表清晰,体现出学生综合分析、总结的能力。
福建农林大学计算机与信息学院信息工程类实验报告2013年11 月13 日实验项目列表福建农林大学计算机与信息学院信息工程类实验报告系:电子信息工程系专业:电子信息工程年级: 2010级姓名:学号:实验课程: VHDL数字系统设计实验室号:__ 田C407 实验设备号: 17 实验时间: 11.12 指导教师签字:成绩:实验一数控分频器的设计1.实验目的和要求学习数控分频器的设计、分析和测试方法。
2.实验原理信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。
数控分频器的仿真波形如图1所示:输入不同的CLK频率和预置值D,给出如图1的时序波形。
100.0μs200.0μs300.0μs400.0μs图1 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns)3.主要仪器设备(实验用的软硬件环境)实验的硬件环境:微机一台、GW48 EDA实验开发系统一套、电源线一根、十芯JTAG口线一根、USB下载线一根、USB下载器一个、示波器实验的软件环境:Quartus II 9.0软件4.操作方法与实验步骤(1)创建工程,并命名位test。
(2)打开QuartusII,建立VHDL文件,并输入设计程序。
保存为DVF.(3)选择目标器件。
Acex1k—EP1K100QC208-3。
(4)启动编译。
(5)建立仿真波形图。
(6)仿真测试和波形分析。
(7)引脚锁定编译。
(8)编程下载。
(9)硬件测试5.实验内容及实验数据记录在实验系统上硬件验证例5-20的功能。
可选实验电路模式1(第一章图4);键2/键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。
编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。
专用集成电路实验报告13050Z011305024237刘德文实验一开发平台软件安装与认知实验实验内容1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9、2软件平台上完成设计电路得VHDL文本输入、语法检查、编译、仿真、管脚分配与编程下载等操作。
下载芯片选择Xilinx公司得CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片、2、用1中所设计得得三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx I SE 9。
2软件原理图设计平台上完成LS74138元件得调用,用原理图得方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配与编程下载等操作。
源程序:library IEEE;use IEEE。
STD_LOGIC_1164.ALL;use IEEE。
STD_LOGIC_ARITH。
ALL;useIEEE。
STD_LOGIC_UNSIGNED、ALL;-— Unment the following lines to use the declarations that are-- provided for instantiating Xilinx primitiveponents、--library UNISIM;--use UNISIM.Vponents。
all;entity ls74138 isPort ( g1 : in std_logic;g2 : in std_logic;inp : in std_logic_vector(2 downto 0);y : out std_logic_vector(7 downto0));end ls74138;architecture Behavioral of ls74138isbeginprocess(g1,g2,inp)beginif((g1 andg2)='1’) thenﻩcase inp iswhen ”000"=>y<="00000001";ﻩwhen "001”=〉y〈="00000010”;when ”010"=>y<=”00000100”;ﻩwhen ”011”=>y<=”00001000";ﻩwhen "100"=>y〈=”00010000”;ﻩ when "101”=>y〈=”00100000”;when "110”=>y<="01000000";ﻩ when "111"=>y<="10000000";ﻩ when others=>y<="";ﻩ end case;elseﻩﻩ y<="";end if;end process;end Behavioral;波形文件:生成元器件及连接电路思考:有程序可以瞧出,定义了三个输入端,一个输出端、g1,g2为使能输入端,当全为一时,开始执行宽度为三得输入inp,并听过程序实现三八译码器得功能、通过实验,分别用了原理图与vhdl语言两种方式进行调试。