FPGA实验及基本程序汇总(Verilog)
可编程逻辑实验报告(3篇)

第1篇一、实验目的1. 熟悉可编程逻辑器件(FPGA)的基本原理和操作方法。
2. 掌握使用FPGA进行数字电路设计的流程。
3. 学会使用FPGA进行简单数字电路的设计与实现。
二、实验器材1. FPGA开发板2. 编译器软件(如Xilinx ISE、Vivado等)3. 实验指导书4. 实验数据线三、实验原理可编程逻辑器件(FPGA)是一种基于半导体工艺的可编程数字电路,具有高集成度、高速度、可重构性强等特点。
FPGA通过内部逻辑单元(如查找表、触发器等)来实现各种数字电路功能。
本实验主要涉及以下原理:1. 数字电路基本原理2. 可编程逻辑器件(FPGA)的基本结构和工作原理3. 编译器软件的使用方法四、实验步骤1. 熟悉开发板(1)认识开发板上的各个模块,如时钟模块、输入输出模块、存储器模块等。
(2)了解开发板上各个模块的功能和作用。
2. 设计数字电路(1)根据实验要求,设计所需的数字电路。
(2)使用原理图或HDL语言进行电路描述。
3. 编译与下载(1)使用编译器软件对设计的数字电路进行编译。
(2)生成比特流文件。
(3)将比特流文件下载到FPGA中。
4. 测试与验证(1)观察FPGA上各个模块的输出信号,验证电路功能是否正确。
(2)使用示波器等仪器进行波形观察,进一步验证电路功能。
五、实验内容1. 设计一个4位全加器(1)原理图设计:使用原理图编辑器设计4位全加器电路。
(2)HDL语言设计:使用HDL语言描述4位全加器电路。
(3)编译与下载:将设计的电路编译成比特流文件,下载到FPGA中。
(4)测试与验证:观察FPGA上各个模块的输出信号,验证4位全加器电路功能是否正确。
2. 设计一个8位奇偶校验器(1)原理图设计:使用原理图编辑器设计8位奇偶校验器电路。
(2)HDL语言设计:使用HDL语言描述8位奇偶校验器电路。
(3)编译与下载:将设计的电路编译成比特流文件,下载到FPGA中。
(4)测试与验证:观察FPGA上各个模块的输出信号,验证8位奇偶校验器电路功能是否正确。
Verilog HDL 实验报告

Verilog实验报告班级:学号:姓名:实验1 :用 Verilog HDL 程序实现直通线1 实验要求:(1) 编写一位直通线的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 建议用模式 52 试验程序:module wl(in,out);input in;output out;wire out;assign out=in;endmodule3 测试基准:`include “wl.v”module wl_tb;reg in_tb;wire out_tb;initialbeginin_tb =0;#100 in_tb =1;#130 in_tb =0;endendmodule4 仿真图形:实验2 :用 Verilog HDL 程序实现一位四选一多路选择器1实验要求:(1) 编写一位四选一多路选择器的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4)建议用模式 52 试验程序:module mux4_to_1 (out,i0,i1,i2,i3,s1,s0);output out;input i0,i1,i2,i3;input s1, s0;reg out;always @ (s1 or s0 or i0 or i1 or i2 or i3)begincase ({s1, s0})2'b00: out=i0;2'b01: out=i1;2'b10: out=i2;2'b11: out=i3;default: out=1'bx;endcaseendendmodule3 测试基准:`include "mux4_to_1.v"module mux4_to_1_tb1;reg ain,bin,cin,din;reg[1:0] select;reg clock;wire outw;initialbeginain=0;bin=0;cin=0;din=0;select=2'b00;clock=0;endalways #50 clock=~clock;always @(posedge clock)begin#1 ain={$random} %2;#3 bin={$random} %2;#5 cin={$random} %2;#7 din={$random} %2;endalways #1000 select[0]=!select[0];always #2000 select[1]=!select[1];mux4_to_1 m(.out(outw),.i0(ain),.i1(bin),.i2(cin),.i3(din),.s1(select[1]),.s0(select[0])); endmodule4 仿真图形:实验3:用 Verilog HDL 程序实现十进制计数器1实验要求:(1) 编写十进制计数器的 Veirlog HDL 程序. 有清零端与进位端, 进位端出在输出为 9 时为高电平.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 自行选择合适的模式2 实验程序:module counter_10c (Q, clock, clear, ov);output [3:0] Q;output ov;input clock, clear;reg [3:0] Q;reg ov;initial Q=4'b0000;always @ (posedge clear or negedge clock)beginif (clear)Q<=4'b0;else if (Q==8)beginQ<=Q+1;ov<=1'b1;endelse if (Q==9)beginQ<=4'b0000;ov<=1'b0;endelsebeginQ<=Q+1;ov<=1'b0;endendendmodule3 测试基准:`include"./counter_10c.v"module counter_10c_tb;wire[3:0] D_out;reg clk,clr;wire c_out;reg[3:0] temp;initialbeginclk=0;clr=0;#100 clr=1;#20 clr=0;endalways #20 clk=~clk;counter_10c m_1(.Q(D_out),.clear(clr),.clock(clk),.ov(c_out)); endmodule4 仿真波形:实验4 :用 Verilog HDL 程序实现序列检测器1 实验要求:、(1) 编写序列检测器的 Veirlog HDL 程序. 检测串行输入的数据序列中是否有目标序列5'b10010, 检测到指定序列后, 用一个端口输出高电平表示.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 自行选择合适的模式2试验程序:module e15d1_seqdet( x, z, clk, rst);input x,clk, rst;output z;reg [2:0] state;wire z;parameter IDLE = 3 'd0,A = 3'd1,B = 3'd2,C = 3'd3,D = 3'd4,E = 3'd5,F = 3'd6,G = 3'd7;assign z =(state==D && x==0)?1:0;always @(posedge clk or negedge rst)if(!rst)beginstate<=IDLE;endelsecasex(state)IDLE: if(x==1)state<=A;else state<=IDLE;A: if (x==0)state<=B;else state<=A;B: if (x==0)state<=C;else state<=F;C: if(x==1)state<=D;else state<=G;D: if(x==0)state<=E;else state<=A;E: if(x==0)state<=C;else state<=A;F: if(x==1)state<=A;else state<=B;G: if(x==1)state<=F;else state <=G;default: state<=IDLE;endcaseendmodule3测试基准:`include"e15d1_seqdet.v"`timescale 1ns/1ns`define halfperiod 20module e15d1_seqdet_tb;reg clk, rst;reg [23:0] data;wire z;reg x;initialbeginclk =0;rst =1;#2 rst =0;#30 rst =1;data= 20 'b1100_1001_0000_1001_0100;#(`halfperiod*1000) $stop;endalways #(`halfperiod) clk=~clk;always @ (posedge clk)begin#2 data={data[22:0],data[23]};x=data[23];ende15d1_seqdet m(.x(x),.z(z),.clk(clk),.rst(rst)); endmodule4仿真波形:。
用verilog 进行FPGA设计阶段总结

用verilog 进行FPGA设计第一阶段总结2007-08-23 21:34实习期间,老师叫我们做他的大课题中的一个小部分。
这个部分主要是将A/D采集的数字信号利用一个函数进行插值恢复,以便后面的作图中使用。
要求在每两个点中间均匀插入九个点,每个点与其前后80个点有关,用verilog 语言描述,在xilinx公司的开发环境ISE下完成。
对于verilog我们没有接触过,以前的课程设计都用的是VHDL,ISE也没用过,以前用的是Maxplus2开发环境,于是我们就从网上下载了一些教程开始学习。
在熟悉了verilog的语法和ISE之后,我们开始了设计。
思路是这样的:将要处理的数据先存在一个存储器中,然后每进来一个新的数据,所有的数据向前移动一个寄存器,在主时钟十分频之后的每个上升沿读取新的数据进来,然后计算插值,然后在每个主时钟的上升沿处输出插值后的数据,这样就能实现插值的过程了。
在具体的编写程序的时候,我们先用与每个插值点前后4个点有关进行设计,设计好之后再进行扩展。
对于插值的计算我们先不考虑,将其全部设置成常量,主要考虑看能否在两个点之间插值成功,这样的程序就简单多了。
很快我们的程序就写好了,编译仿真之后能实现插值。
接下来就是主要考虑插值的计算问题了,在这个部分我们走了一些弯路。
首先是乘法问题,这个课题相当于是一个FIR滤波器,其中要进行约720次的相乘累加,我们看资料书和一些发表的论文,上面好多都考虑用分布式算法DA来实现,但是要是考虑的点多了,这种方法就不可行了,因为那个表会造的很大。
在书上,我也没有看到直接用乘号来进行乘法运算的,大部分都是进行移位相加的,为此还认真的研究了一下乘法的原理。
到最后,老师说你可以直接用乘号的,不要管那些移位什么的,这些是综合器做的事情。
其次是verilog中有符号数的计算问题。
因为是新接触,不知道怎么做。
为了实现2*(-3)=-6,搞到了半夜两点。
我记得计算机组织与结构里面有一章是关于乘法的,里面讲的是用布斯算法,看了半天,觉得在程序中这样实现太麻烦,肯定有更简单的方法。
《FPGA设计与应用》实验指导书全(Verilog版)

《FPGA设计与应用》实验指导书熊利祥编武汉理工大学华夏学院2011年9月前言一、实验课目的数字电路与系统设计实验课是电子工程类专业教学中重要的实践环节,包括了ISE开发环境基本操作及FPGA的基本原理、基带传输系统的设计、Uart串口控制器电路的设计、PS/2接口的设计、VGA显示接口设计。
要求学生通过实验学会正确使用EDA技术,掌握FPGA器件的开发,熟练使用ISE开发环境,掌握Verilog语言的编程,掌握数字电路和系统的设计。
通过实验,使学生加深对课堂专业教学内容的理解,培养学生理论联系实际的能力,实事求是,严谨的科学作风,使学生通过实验结果,利用所学的理论去分析研究EDA技术。
培养学生使用Basys 2开发板的能力以及运用实验方法解决实际问题的能力。
二、实验要求:1.课前预习①认真阅读实验指导书,了解实验内容;②认真阅读有关实验的理论知识;③读懂程序代码。
2.实验过程①按时到达实验室;②认真听取老师对实验内容及实验要求的讲解;③认真进行实验的每一步,观察程序代码与仿真结果是否相符;④将实验过程中程序代码和仿真结果提交给老师审查;⑤做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。
3.实验报告①按要求认真填写实验报告书;②认真分析实验结果;③按时将实验报告交给老师批阅。
三、实验学生守则1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西;2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件;3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线;4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。
目录实验一Uart通用串口接口的设计 (4)实验二PS/2接口的设计 (28)实验三VGA显示接口设计 (30)附录一 basys 2开发板资料 (36)实验一 Uart串口控制接口电路的设计一、实验目的1.掌握分频模块的设计方法。
基于FPGA的DS18B20控制程序设计及其Verilog实现(汇编)

基于FPGA的DS18B20控制程序设计及其Verilog实现一,总体介绍DS18B20是一个1-wire总线,12bit的数字温度传感器,其详细的参数这里不做具体的介绍,只讨论其基于Verilog的控制程序的设计。
实际上,对DS18B20的控制,主要是实现1-wire总线的初始化,读,写等操作,然后再根据DS18B20的控制要求,实现对其控制的verilog逻辑。
在1-Wire总线上,有一个master,可以有1个或者多个slave。
而对于FPGA+DS18B20的温度测试设计来讲,需要在FPGA上实现一个1-Wire总线的master。
DS18B20作为1-wire 总线的slave设备存在,可以有一个或者多个,不过为了简化程序,例程里假定只存在一个DS18B2020。
1-Wire总线的操作形式上相对简单,但操作本身相对却又比较复杂。
用Verilog做控制程序设计时,可以采用多层次嵌套的状态机来实现。
二,FPGA + DS18B20的硬件设计硬件的设计非常简单,只需要将DS18B20的DQ与FPGA的一个IO连接,并加4.7K左右的上拉电阻就可以了。
VDD和VPU可以为3.0~5.0V。
这里我们参照FPGA本身的IO电压,选择3.3V。
另外要注意的一点是,由于DQ的数据是双向的,所以FPGA的该IO要设定为inout类型。
三,1-Wire总线的基本操作及Verilog实现。
根据1-Wire总线的特点,可以把1-Wire总线的操作归结为初始化,单bit读操作,单bit写操作等最基础的几种。
下面分别是几种基本操作的介绍和verilog实现。
由于DS18B20的时序操作的最小单位基本上是1us,所以在该设计中,全部采用1MHz的时钟。
1. 初始化初始化实际上就是1-wire总线上的Reset操作。
由master发出一定长度的初始化信号。
Slave 看到该初始化信号后,在一定时间内发出规定长度的响应信号,然后初始化操作就结束了。
FPGA基础实验

电子科技大学成都学院实验报告册课程名称:FPGA基础实验姓名:X X学号:1240720133院系:微电子技术系专业:电子科学与技术指导教师:李海2014 年12 月28 日实验一:奇数分频一、实验目的:掌握用Verilog HDL语言实现奇数分频。
二、实验原理和内容:原理:采用了两个计数器,一个由输入时钟上升沿触发,另一个由输入时钟下降沿触发,两个分频器的输出信号正好有半个时钟周期的相位差,最后将两个计数器的输出相或,即得占空比为50%的方波信号。
内容:编写奇数分频模块,实现对输入时钟信号的17分频,同时占空比为50%的方波信号。
三、实验步骤:1、启动QuartusII建立一个空白工程,然后命令为F_div17.qpf2、新建Verilog HDL源程序文件F_div17.v,输入程序代码并保存(完整的Verilog HDL程序参考程序清单),然后进行综合编译。
若在编译过程中发现错误,则找出并更改错误,直至编译成功为止。
3、新建文件对话框Vector Wareform file,单击ok关闭建立一个空的波形编辑器窗口,并改名为F_div17.vwf保存。
在所示Name选项卡内双击鼠标左键,弹出一对话框,选择Node Finder按钮,再次弹出了一对话框,选择list添加所有引脚,再单击ok,然后编辑输入节点波形,最后再Quartus 主界面下选择Tools--》Simulator Tool命令,弹出一对话窗,第一步:在Simulation input选择仿真文件F_div17.vwf第二步:在Simulation mode选择Functional第三步:点击Generate Functional Simulation Netlist生成仿真网表第四步:点击左下角的Start开始仿真,结束后再点击Open打开仿真后的波形文件。
4、检查是否正确,若错误,则修改程序,直到达到要求。
四、实验数据和结果:module F_div17(clk,reset,out,cout1,cout2);input clk,reset;output out,cout1,cout2;reg cout1,cout2;reg[4:0] m,n;wire out;assign out = cout1|cout2;always @(posedge clk)beginif(!reset) begin cout1<=0;m<=0;endelse if(m<=5'd16)beginm<=m+1;if(m==5'd7) begin cout1<=~cout1;endelse if(m==5'd15) begin m<=0;cout1<=~cout1;endendendalways @(negedge clk)beginif(!reset) begin cout2<=0;n<=0;endelse if(n<=5'd16)beginn<=n+1;if(n==5'd7) begin cout2<=~cout2;endelse if(n==5'd15) begin n<=0;cout2<=~cout2;endendendendmodule波形仿真结果为:五、实验总结:进过波形仿真的验证可知,程序实现了对输入信号的17分频,且其占空比为50%。
FPGA_verilog_频率计实验报告

目录一,实验原理...(测频方法) (2)二,任务要求 (3)三,各模块功能及介绍1,分频器 (3)2,闸门选择器 (4)3,频率计数器 (6)4,锁存器 (7)5,锁存—译码器 (8)四,顶层电路及总体仿真1顶层电路 (11)2总体仿真结果 (14)五,测试结果记录 (15)一,测量原理与方法所谓“频率”,就是周期性信号在单位时间(秒)内变化的次数。
若在一定的时间间隔T 内计数,计得某周期性信号的重复变化次数为N,则该信号的频率可表达为:f=N/T所以测量频率就要分别知道N和T的值,由此,测量频率的方法一般有三种:测频方法、测周方法和等精度测量。
测频方法这种方法即已知时基信号(频率或周期确定)做门控信号,T为已知量,然后在门控信号有效的时间段内进行输入脉冲的计数,原理图如下图所示:首先,被测信号①(以正弦波为例)经过放大整形后转变成方波脉冲②,其重复频率等于被测信号频率。
把方波脉冲②加到闸门的输入端。
由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号③去控制门控电路形成门控信号④,门控信号的作用时间T是非常准确的(由石英振荡器决定)。
门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲②才能通过闸门成为被计数的脉冲⑤由计数器计数。
闸门开通的时间称为闸门时间,其长度等于门控信号作用时间T。
比如,时间基准信号的重复周期为1S,加到闸门的门控信号作用时间T亦准确地等于1S,即闸门的开通时间——“闸门时间”为1S。
在这一段时间内,若计数器计得N=100000个数,根据公式f=N/T,那么被测频率就是100000Hz。
如果计数式频率计的显示器单位为“KHz”,则显示100.000KHz,即小数点定位在第三位。
不难设想,若将闸门时间设为T=0.1S,则计数值为10000,这时,显示器的小数点只要根据闸门时间T的改变也随之自动往右移动一位(自动定位),那么,显示的结果为100.00Khz。
FPGA编程基础之实验程序

目录分频器实验: (2)1、分频倍数为2N (2)2、分频倍数为偶数,但不是2N (2)(1)10分频,每10个clk输出一个高脉冲。
(2)(2)10分频,占空比为50% (3)(3)一般偶数分频程序 (4)3、分频倍数为奇数 (5)串并-并串变换实验 (6)1、数字信源模块: (6)2、串并变换模块: (6)3、串并-并串顶层电路图 (8)4、仿真波形 (8)正选信号发生器实验: (9)分频器实验:1、分频倍数为2N例如:32分频--============================--计数器(0~31)--============================LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY counter32 ISPORT(clk:IN STD_LOGIC;d:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0)); --进行32计数,数据类型宽度为5END counter32;ARCHITECTURE behav OF counter32 ISBEGINPROCESS(clk)BEGINIF(clk'event AND clk='1')THENd<=d+1;END if;END PROCESS;END behav;2、分频倍数为偶数,但不是2N例如:10分频(1)10分频,每10个clk输出一个高脉冲。
--================================--10分频,每10个clk输出一个高脉冲。
--================================LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;--USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin10 ISPORT(clk:IN STD_LOGIC;clkout:OUT STD_LOGIC);END fenpin10;ARCHITECTURE behav OF fenpin10 IS BEGINPROCESS(clk)V ARIABLE n:INTEGER range 0 to 9:=0;BEGINIF clk'EVENT AND clk='1' THENIF n<9 THEN --10分频n:=n+1;clkout<='0';ELSEn:=0;clkout<='1';END IF;END IF;END PROCESS;END behav;(2)10分频,占空比为50%--================================ --10分频,占空比为50%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题:1、 FPGA结构一般分为三部分:可编程逻辑块(CLB)、可编程I/O模块和可编程内部连线。
2、 CPLD的内部连线为连续式布线互连结构,任意一对输入、输出端之间的延时是固定;FPGA的内部连线为分段式布线互连结构,各功能单元间的延时不定(不可预测)。
3、大规模可编程器件主要有CPLD和FPGA两类,其中CPLD通过可编程乘积项逻辑实现其逻辑功能。
基于SRAM的FPGA器件,每次上电后必须进行一次配置。
FPGA内部阵列的配置一般采用在电路可重构技术,编程数据保存在静态存储器(SRAM) ,掉电易失。
4、目前世界上有十几家生产CPLD/FPGA的公司,最大的两家是:Altera,Xilinx。
5、硬件描述语言(HDL)是EDA技术的重要组成部分,是电子系统硬件行为描述、结构描述、数据流描述的语言,它的种类很多,如VHDL、Verilog HDL、AHDL6、 WHEN_ELSE条件信号赋值语句和 IF_ELSE顺序语句的异同:* WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。
* IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中7、可编程逻辑器件设计输入有原理图输入、硬件描述语言输入和波形输入三种方式。
原理图输入方式是一种最直接的设计描述方式,波形设计输入适用于时序逻辑和有重复性的逻辑函数。
硬件描述语言的突出优点是:* 语言与工艺的无关性;语言的公开可利用性,便于实现大规模系统的设计;* 具有很强逻辑描述和仿真功能,而且输入效率高,在不同设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。
8、用VHDL/Veilog HDL语言开发可编程逻辑电路的完整流程:文本编辑→功能仿真→逻辑综合→布局布线→时序仿真。
*所谓综合,就是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等),将设计输入转换成满足要求的电路设计方案,该方案必须同时满足与其的功能和约束条件。
综合的过程也是设计目标的优化过程,其目的是将多个模块化设计文件合并为一个网表文件,供布局布线使用,网表中包含了目标器件中的逻辑单元和互连的信息。
*布局布线就是根据设计者指定的约束条件(如面积、延时、时钟等)、目标器件的结构资源和工艺特性,以最优的方式对逻辑元件布局,并准确地实现元件间的互连,完成实现方案(网表)到使实际目标器件(FPGA或CPLD)的变换。
9、基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→功能仿真→综合→适配→时序仿真→编程下载→硬件测试。
* 综合是EDA设计的关键步骤,综合就是将电路的高级语言转换成低级的,可与FPGA/CPLD相映射的功能网表文件。
为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。
10、构成一个完整的VHDL语言程序的五个基本结构:实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION) 、库(LIBRARY) 、程序包 (PACKAGE) 。
*实体的由实体说明和结构体两部分组成。
实体说明部分用于描述所设计系统的外部端口信号和参数的属性和设置,而结构体部分则定义了设计单元的具体功能、行为、数据流程或内部结构。
*结构体的三种描述方式,即行为级描述、数据流级描述和结构级描述。
*结构体通常由结构体名称、定义语句和并行处理语句构成。
*程序包用于存放各设计模块能共享的数据类型、常数、子程序等。
*库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。
在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。
它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。
*库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。
在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。
它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。
常用库:(1)IEEE库:IEEE库主要包括std_logic_1164、numeric_bit、numeric_std等程序包,还有一些程序包非IEEE标准,但并入IEEE库,如std_logic_arich、std_logic_unsigned、std_logic_signed。
使用IEEE程序包,必须声明。
(2) std库:包含 standard textio程序包。
Std库符合IEEE标准,应用中不必声明。
(3) work库:用户的VHDL设计先行工作库。
(4) vital 库:包含时序程序包vital_timing和vital_primitives。
设计开发过程通常不用,每个设计实体都必须有各自完整的库说明语句和use语句。
Use语句的使用将使说明的程序包对本设计实体部分全部开放,即是可视的。
11、VHDL的数据对象包括常量(constant)、变量(varuable) 和信号(signal) ,它们是用来存放各种类型数据的容器。
12、在VHDL的端口声明语句中,端口方向包括 in 、out 、buffer 、inout、linkage 。
“BUFFER”为缓冲端口,与OUT 类似,只是缓冲端口允许实体内部使用该端口信号,它可以用于输出,也可以用于端口信号的反馈。
当一个结构体用“BUFFER”说明输出端口时,与其连接的另一个结构体的端口也要用BUFFER说明。
以“LINKAGE”定义的端口不指定方向,无论哪个方向的信号都可以连接。
13、VHDL的PROCESS(进程)语句是由顺序语句组成的,但其本身却是并行语句。
14、VHDL的子程序有过程(PROCEDURE) 和函数(FUNCTION) 两种类型,具有可重载性特点。
15、图形文件的扩展名是 .bdf ;矢量波形文件的扩展名是 .vwf ;使用VHDL语言,文本设计文件的扩展名是 .vhd ;自建元件图形符号文件的扩展名.bsf;资源分配说明文件扩展名.qsf,用文本打开它可以修改引脚编号;逻辑综合会生成.edf 文件;双击.qpf文件可启动QuartusII并打开已有工程。
16、图形编辑中模块间的连线有三种形式:节点线、总线和管道线17、Quartus编译器编译FPGA工程最终生产两种不同用途的文件,它们分别是.sof和.pof。
sof是SRAM Object File,下载到FPGA中,断电丢失。
pof是Programmer Object File,下载到配置芯片中,上电重新配置FPGA。
18、FPGA过程中的仿真有三种:行为仿真、逻辑仿真、时序仿真。
19、IP核在EDA技术和开发中占有很重要地位,提供VHDL硬件描述语言功能块,但不涉及实现该功能模块的具体电路的IP 核为软件IP。
二、名词解释,写出下列缩写的中文(或者英文)含义:1. FPGA Field-Programmable Gate Array 现场可编程门阵列2 VHDL Very-High-Speed Integrated Circuit Hardware Description Language)甚高速集成电路硬件描述语言3 HDL Hardware Description Language硬件描述语言5 CPLD Complex Programmable Logic Device复杂可编程逻辑器件6PLD Programmable Logic Device 可编程逻辑器件7GAL generic array logic通用阵列逻辑B Logic Array Block逻辑阵列块9. CLB Configurable Logic Block 可配置逻辑模块10 EAB Embedded Array Block 嵌入式阵列块11 SOPC System-on-a-Programmable-Chip 可编程片上系统12. LUT Look-Up Table 查找表13. JTAG Joint Test Action Group 联合测试行为组织14. IP Intellectual Property 知识产权15 ASIC Application Specific Integrated Circuits 专用集成电路16 ISP In System Programmable 在系统可编程17 ICR In Circuit Re-config 在电路可重构18 RTL Register Transfer Level 寄存器传输级4EDA Electronic Design Automation 电子设计自动化三、选择题:1.基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:(D)A.①②③④ B.②①④③ C.④③②① D.②④③①2.执行Quartus II的( B )命令,可以检查设计电路错误。
A Create Default SymbolB Compiler----编译C Simulator ----时序仿真D Timing Analyzer ---时序分析3.在设计输入完成后,应立即对设计文件进行( C )。
A编辑 B 编译 C 功能仿真D时序仿真4. 在VHDL中用( C )来把特定的结构体关联一个确定的实体,为一个大型系统的设计提供管理和进行工程组织。
A输入 B 输出C综合D配置5电子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化)及提高运行速度(即速度优化),下列方法( A )不属于面积优化。
A 流水线设计B 资源共享C 逻辑优化D 串行化6不完整地IF语句,其综合结果可实现()A 时序逻辑电路B 组合逻辑电路C 双向电路D 三态控制电路7.下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的()。
A. 原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;B. 原理图输入设计方法一般是一种自底向上的设计方法;C. 原理图输入设计方法无法对电路进行功能描述;D. 原理图输入设计方法也可进行层次化设计。
8.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是(C)。
A. PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。
B. 敏感信号参数表中,不一定要列出进程中使用的所有输入信号;C. 进程由说明部分、结构体部分、和敏感信号三部分组成;D. 当前进程中声明的变量不可用于其他进程9 IP核在EDA技术和开发中占有很重要的地位,提供VHDL硬件描述语言功能块,但不涉及实现该功能模块的具体电路的IP 核为( C )A 硬件IPB 固件IPC 软件IPD 都不是10 综合是EDA设计的关键步骤,下面对综合的描述中错误的是()A 综合就是把抽象设计中的一种表示转换成另一种表示的过程。