文档库 最新最全的文档下载
当前位置:文档库 › 西安电子科技大学 VHDL与数字系统EDA设计

西安电子科技大学 VHDL与数字系统EDA设计

西安电子科技大学 VHDL与数字系统EDA设计
西安电子科技大学 VHDL与数字系统EDA设计

VHDL语言与数字系统EDA设计

学院:研究生院

学号:1200030066

姓名:李磊

提交时间:2013年6月25日

目录

第一部分实验 (3)

1.1 实验一:计数器和译码器的设计 (3)

1.2 实验二:两位加法器和两位BCD计数器的设计 (9)

1.3 实验三:8×8位RAM数据读写测试 (12)

1.4 实验四:UART串行通信的发送接收模块的设计 (15)

1.5 实验五:1/100s计时器的设计 (23)

第二部分作业 (35)

2.1 作业一:读程序填空 (35)

2.2 作业二:时钟事件计数器的设计 (36)

2.3 作业三:四阶移位寄存器的设计 (38)

第一部分实验

1.1实验一

1.实验目的

了解和学习VHDL语言的编写,以及简单组合逻辑和时序逻辑的实现,并学习使用EDA软件(Quartus II 9.0)进行代码编写、仿真、分析。同时综合生成RTL电路图、逻辑结构图和时序波形图。

初步掌握IF语句和CASE语句的特点。了解GENERATE语句的结构。

2.实验内容

1)用IF语句设计一个四-十六译码器

2)用CASE语句设计一个四-十六译码器

3)用GENERATE语句构造一个串行的十六进制计数器

3.实验方案

1)IF语句设计四-十六译码器

四-十六译码器的外部接口如下图所示:

图1.1 四-十六译码器外部接口图

四-十六译码器有4个二进制输入端a3、a2、a1、a0和16个输出端y15—y0。

3个选通端口g1、g2a和g2b。只有在g1=1,g2a=0,g2b=0时,译码器才正常工作。

IF语句设计四-十六译码器,经综合器综合生成的RTL框图如下:

图1.2 IF语句综合的四-十六译码RTL框图

2)CASE语句设计四-十六译码器

接口和图1.1接口完全一致。但经综合器综合后生成的RTL框图却有很大区别。

图1.3 CASE语句综合的四-十六译码RTL框图

3)十六进制计数器

十六进制计数器外部接口如下图所示

图1.4 十六进制计数器外部接口

Clk为计数时钟,clr为清零,输出端为q。本实验先设计一个D触发器,

即dffr为已生成的原件,然后利用GENERATE来循环生成串行连接的四个触发器,每个触发器的输出q为计数值的一位,最终四位组成一个十六进制的计数器。经综合器综合生成的RTL图如下。

图1.5 十六进制数器RTL框图

4.仿真结果(Quartus II 9.0)

1)IF语句设计的四-十六译码器波形仿真波形

g1=1,g2a=0,g2b=0时,片选选通,译码器正常译码。

图1.6 四-十六译码器译码波形图

片选端未被选通时,译码器输出为高电平1。

图1.7 四-十六译码器未选通波形图

2)CASE语句设计的四-十六译码器波形仿真波形

片选未选通时与图1.3结果一致。当片选选通时,结果如下。

图1.8 四-十六译码器译码波形图

3)十六进制计数器仿真波形

图1.9 十六进制计数器波形图

5.主程序代码

1)IF语句设计四-十六译码器主要程序代码

端口定义:

port ( a : in std_logic_vector ( 3 downto 0 );

g1,g2a,g2b:in std_logic;

y : out std_logic_vector ( 15 downto 0)

);

功能实现:

process (g1,g2a,g2b,a)

begin

if(g1='1'and g2a='0'and g2b='0')then

if(a="0000")then y<="1111111111111110";

elsif(a="0001")then y<="1111111111111101";

elsif(a="0010")then y<="1111111111111011";

elsif(a="0011")then y<="1111111111110111";

elsif(a="0100")then y<="1111111111101111";

elsif(a="0101")then y<="1111111111011111";

elsif(a="0110")then y<="1111111110111111";

elsif(a="0111")then y<="1111111101111111";

elsif(a="1000")then y<="1111111011111111";

elsif(a="1001")then y<="1111110111111111";

elsif(a="1010")then y<="1111101111111111";

elsif(a="1011")then y<="1111011111111111";

elsif(a="1100")then y<="1110111111111111";

elsif(a="1101")then y<="1101111111111111";

elsif(a="1110")then y<="1011111111111111";

elsif(a="1111")then y<="0111111111111111";

else y<="XXXXXXXXXXXXXXXX";

end if;

else Y<="1111111111111111";

end if;

end process;

2)CASE语句设计四-十六译码器主要程序代码

process (g1,g2a,g2b,a)

begin

if(g1='1'and g2a='0'and g2b='0')then

case a is

when "0000"=>y<="1111111111111110";

when "0001"=>y<="1111111111111101";

when "0010"=>y<="1111111111111011";

when "0011"=>y<="1111111111110111";

when "0100"=>y<="1111111111101111";

when "0101"=>y<="1111111111011111";

when "0110"=>y<="1111111110111111";

when "0111"=>y<="1111111101111111";

when "1000"=>y<="1111111011111111";

when "1001"=>y<="1111110111111111";

when "1010"=>y<="1111101111111111";

when "1011"=>y<="1111011111111111";

when "1100"=>y<="1110111111111111";

when "1101"=>y<="1101111111111111";

when "1110"=>y<="1011111111111111";

when "1111"=>y<="0111111111111111";

when others =>y<="XXXXXXXXXXXXXXXX";

end case;

else Y<="1111111111111111";

end if;

end process;

3)十六进制计数器主要程序代码

architecture behave of counter_16 is

component dffr is

port(

d,clr,clk:in std_logic;

q,qb:out std_logic

);

end component;

signal count_in:std_logic_vector(4 downto 0);

begin

count_in(0)<=clk;

gen1:for i in 0 to 3 generate

U:dffr port map(d=>count_in(i+1),clk=>count_in(i),

clr=>clr,q=>q(i),qb=>count_in(i+1));

end generate;

end behave;

1.2实验二

1.实验目的

了解和学习VHDL语言的编写,以及简单组合逻辑和时序逻辑的实现,并学习使用EDA软件(Quartus II 9.0)进行代码编写、仿真、分析。同时综合生成RTL电路图、逻辑结构图和时序波形图。

初步掌握加法器的结构特点。进一步了BCD计数器。

2.实验内容

1)设计一个两位二进制的加法器

2)设计一个两位的BCD计数器

3.实验方案

1)设计一个两位二进制的加法器

两位二进制加法器的外部接口如下图。

图2.1 两位加法器外部接口图

a,b分别为输入,cin为上一级的进位,sum为输出,cout为输出进位。

本实验的主要思想是分两级加法运算,进位放在第二级运算中。经综合器综合后的RTL框图如下。

图2.2 两位加法器RTL框图

2)设计一个两位的BCD计数器

两位BCD计数器外部接口如图。

图2.3 BCD计数器外部接口图

clr为异步清零端,clk为时钟信号,b为计数输出的十位,a为个位。

本实验主要思想是,对脉冲计数,每来一个时时钟上升沿计数一次,a值加1,当个位计满9时,产生进位b加1同时a重新从0开始计数,当最终计数值达到99时,BCD计数器计数值满,a、b同时从0开始计数。

4.仿真结果(Quartus II 9.0)

1)两位二进制的加法器波形仿真波形

图2.4 两位加法器仿真波形

2)两位的BCD计数器形仿真波形

图2.5 BCD计数器仿真波形

当a值计数满9时,b加1,a从0重新开始计数,当b、a同时计数满99时,BCD计数器重新从0开始计数。

5.主程序代码

1)两位二进制的加法器主要程序代码

ENTITY full_adder IS

PORT ( a,b: IN STD_LOGIC_VECTOR(1 DOWNTO 0);

cin: IN STD_LOGIC;

sum:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);

cout:OUT STD_LOGIC);

END full_adder;

ARCHITECTURE behav OF full_adder IS

SIGNAL Q_TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

Q_TEMP<='0'&a+b+cin;

cout<=Q_TEMP(2);

sum<=Q_TEMP(1 DOWNTO 0);

END behav;

2) 两位的BCD计数器主要程序代码

process(clk,clr,one,ten,tep)

begin

tep<=ten&one;

if clr='1' then

one<="0000";

ten<="0000";

elsif clk'EVENT AND clk='1'then

if one<"1001" then

one<=one+1;

else

one<="0000";

ten<=ten+1;

end if;

if tep>="10011001" then

one<="0000";

ten<="0000";

end if;

end if;

a<=one(3 downto 0);

b<=ten(3 downto 0);

end process;

1.3实验三

1.实验目的

了解和学习VHDL语言的编写,以及简单组合逻辑和时序逻辑的实现,并学习使用EDA软件(Quartus II 9.0)进行代码编写、仿真、分析。同时综合生成RTL电路图、逻辑结构图和时序波形图。

初步掌握RAM结构、工作原理以及编写程序的结构特点,初步学习如何对存储原件的读写操作,并利用测试平台进行性能测试。

2.实验内容

利用数组形式描述256x8bits的RAM,并利用测试床完成对其读写操作。3.实验方案

8×8位RAM的外部接口如下。

图3.1 w×k位RAM外部接口分布图

上图所示为w×k位RAM,其中w和k分别为参数变量,可以根据自行需要进行赋值,以方便更改RAM的地址为和数据位。本实验中所用到的RAM是8×8位RAM,即w=8,k=8。所给参数如下图所示。

图3.2 8×8位RAM参数赋值

如图3.1,8×8为RAM有八条地址控制线adr(0)~adr(7),八条数据输入线data_in(0)~data_in(7),八条数据输出线data_out(0)~data_out(7),cs为片选控制线,高电平有效,wr为写操作控制线,rd为读操作控制线。当cs=1、wr信号由低变高(上升沿)时,data_in上的数据将写入由adr所指的单元;当cs=1,rd=0时,

由adr所指单元的内容将从data_out的数据线上输出。

在实验设计过程中,通过对RAM对应控制端口进行赋值,来通过相应的进程控制RAM的读写操作,同时在程序设计中,添加了一些信号传送的延迟时间和错误检查控制语句,用于提示警告。设计的程序经综合器综合后生成的RTL 框图如下。

图3.3 8×8位RAM的测试的RTL框图

4.仿真结果(Quartus II 9.0)

8×8位RAM读写操作测试仿真波形如下。

图3.4 8×8位RAM读写测试波形图

从图3.4中可以看出,当片选控制线cs处于低电平0时,RAM未选通,其输出控制线data_out输出为高阻态Z。RAM的初始化数据为0,在读控制线rd 为低电平0(读选通),而写操作控制线为低电平时,输出线data_out继续保持初始化数据0;读控制线rd为低电平0(读选通),而写操作控制线为上升沿时(写选通),输入线data_in上的内容读入到adr所指单元,输出线data_out输出地址控制线adr所指单元的数据。

5.主程序代码

端口定义:

entity RAM is

generic (k:integer:=8;

w:integer:=8);

port(adr:in std_logic_vector(w-1 downto 0);

data_in:in std_logic_vector(k-1 downto 0);

cs,wr,rd:in std_logic;

data_out:out std_logic_vector(k-1 downto 0));

end RAM;

功能实现:

architecture behave of RAM is

subtype word is std_logic_vector(k-1 downto 0);

type memory is array(0 to 2**w-1) of word;

signal adr_in:integer range 0 to 2**w-1;

signal sram: memory;

signal data_in_change,wr_rise:time:=0ps;

begin

adr_in<=conv_integer(adr);

process (wr)

begin

if(wr'event and wr='1') then

wr_rise<=now;

if(cs='1')then

sram(adr_in)<=data_in after 2 ns;

end if;

end if;

assert (wr_rise-data_in_change>=800 ps) report "write sram setup time violation " severity WARNING;

end process;

process(rd,cs,adr_in,wr)

begin

if(rd='0' and cs='1') then

data_out<=sram(adr_in) after 3 ns;

else

data_out<=(others=>'Z') after 4 ns;

end if;

end process;

process(data_in)

begin

data_in_change<=now;

assert (data_in_change-wr_rise>300 ps) report "read sram hold time violation " severity WARNING;

end process;end behave;

1.4实验四

1.实验目的

了解和学习VHDL语言的编写,以及简单组合逻辑和时序逻辑的实现,并学习使用EDA软件(Quartus II 9.0)进行代码编写、仿真、分析。同时综合生成RTL电路图、逻辑结构图和时序波形图。

初步了解UART的工作原理,同时掌握串并转换和并串转换的工作原理和设计方法。

2.实验内容

采用VHDL语言设计实现UART串行通信的发送接收模块。

3.实验方案

1)UART原理简介

在数据通信中,收/发器之间传送的是一组二进制的“0”“1”位串,而“0”“1”在不同的位置可能有不同的含义。有的只用于同步,有的代表通信双方的地址,有的是控制信息,有的是为了差错控制而附加上的冗余位,有的则是真正的需要传输的数据。这些都需要在通信协议中事先进行约定,以形成收/发双方共同遵守的格式。

逐位传送的串行通信中,接收端必须能够识别每个二进制位的开始和结束,即位定时;还要能识别每个字符的开始和结束,即字符定时。异步串行通信时,每个字符作为一帧独立的信息,可随机出现在数据流中,即每个字符出现在数据流中的相对时间是任意的。一个字符一旦出现后,字符中的各位便以预先固定的时钟频率进行传送。为确保异步通信的正确性,必须找到一种可以使收/发双方在随机传送的字符间实现同步的方法,即在字符格式中设置起始位和停止位,如下图所示。

图4.1 数据位结构图

通用异步收发器UART是最常见的一种串行接口电路,其主要由发送器、接收器、波特率发生器、同步先进先出缓存、Modem控制模块、接口模块等组成。

图4.2 UART原理框图

在数据接收时,UART内核模块负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率时钟的驱动下同步地接收并且保存RS-232接收端口上的串行数据;在数据发送时,UART内核模块首先依据待发送的数据和奇偶校验位的设置产生完整的发送序列(包括起始位、数据位、奇偶校验位和停止位),之后控制移位寄存器将序列加载到移位寄存器的内部寄存器里,最后再控制波特率发生器驱动移位寄存器将数据串行输出。根据设计的要求,奇偶校验模块可以省略。在本次试验中我们重点设计其中的发送器和接收器模块。

图4.3 UART接收器流程图

图4.4 UART发送器流程图

2)UART收发模块设计

UART发送模块的功能(给定波特率)

空闲状态,线路处于高电平;当受到发送数据指令后,拉低线路一个数据的时间T,接着数据按低位到高位一次发送,数据发送完毕后,接着发送停止位(停止位为高电平),一帧数据发送结束。发送模块外部接口分布如下。

图4.5 UART发送模块外部接口

从图中可以看到,clkt为基准时钟,reset为复位信号,write为写控制信号,din为并行数据输入信号,tx为串行数据输出信号,busy为输出完成信号。UART接收模块的功能(给定波特率)

实时检测线路,当线路产生下降沿时,即认为有数据传输,启动接收数据进程进行接收,按从低位到高位接收数据。接收模块外部接口分布如下。

图4.6 UART接收模块外部接口

从图中可以看到,clkr为基准时钟,reset为复位信号,rd为读控制信号,dout 为并行数据输出信号,busy为接收完成信号。

UART通信模块

将发送器和接收器模块组装起来,就能较容易地实现通用异步收发器总模块。

从而完成UART的的整体设计。

4.仿真结果(Quartus II 9.0)

1)发送模块仿真结果。

图4.7 UART发送模块RTL框图

图4.8 UART发送模块仿真波形图

从图4.8可以看出,write信号上升沿到来后,开始写入数据din,当reset复

位信号变为高电平是,数据写入停止,tx和busy均变为高电平。

2)接收模块仿真结果

图4.9 UART接收模块RTL框图

图4.10 UART接收模块仿真波形图

图中rxd为高电平是,进行数据的输入,最终dout输出其接收的数据。

5.主程序代码

1)发送器设计代码

architecture behave of transfer is

begin

pro:process(clkt,reset,write)

variable number:STD_LOGIC_VECTOR(3 downto 0);

variable count:STD_LOGIC_VECTOR(3 downto 0);

variable buf:STD_LOGIC_VECTOR(7 downto 0);

begin

if reset='1' then

number:="0000";

busy<='1';

tx<='1';

count:="0000";

elsif rising_edge(clkt)then

if number="0000" then

if write='1' then

busy<='0';

tx<='0';

number:=number+1;

buf:=din;

count:="0000";

else number:="0000";

tx<='1';

busy<='1';

count:="0000";

end if;

elsif number = "0001" then

if count<="0101"then

count:=count+1;

tx<='0';

busy<='0';

else

count:="0000";

number:=number+1;

end if;

elsif number>="0010" and number<="1001"then

if count<"1111"then

count:=count+1;

busy<='0';

tx<= buf(7) ;

else

buf := buf(6 downto 0)&'0';

count:="0000";

number:=number+1;

end if;

elsif number = "1010" then

if count<"1111"then

count:=count+1;

busy<='0';

tx<= '1' ;

else

count:="0000";

number:=number+1;

end if;

elsif number>="1011" then

busy<='1';

tx<= '1' ;

number:="0000";

end if;

end if;

end process;

end behave;

EDA技术与VHDL程序设计基础教程习题答案

EDA技术与VHDL程序设计基础教程习题答案 第1章EDA习题答案 1.8.1填空 1.EDA的英文全称是Electronic Design Automation 2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段 3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向 4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER 5.常用的设计输入方式有原理图输入、文本输入、状态机输入 6.常用的硬件描述语言有VHDL、V erilog 7.逻辑综合后生成的网表文件为EDIF 8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件 9.时序仿真较功能仿真多考虑了器件的物理模型参数 10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum 1.8.2选择 1.EDA技术发展历程的正确描述为(A) A CAD->CAE->EDA B EDA->CAD->CAE C EDA->CAE->CAD D CAE->CAD->EDA 2.Altera的第四代EDA集成开发环境为(C) A Modelsim B MUX+Plus II C Quartus II D ISE 3.下列EDA工具中,支持状态图输入方式的是(B) A Quartus II B ISE C ispDesignEXPERT

D Syplify Pro 4.下列几种仿真中考虑了物理模型参数的仿真是(A) A时序仿真 B 功能仿真 C 行为仿真 D 逻辑仿真 5.下列描述EDA工程设计流程正确的是(C) A输入->综合->布线->下载->仿真 B布线->仿真->下载->输入->综合 C输入->综合->布线->仿真->下载 D输入->仿真->综合->布线->下载 6.下列编程语言中不属于硬件描述语言的是(D) A VHDL B V erilog C ABEL D PHP 1.8.3问答 1.结合本章学习的知识,简述什么是EDA技术?谈谈自己对EDA技术的认识? 答:EDA(Electronic Design Automation)工程是现代电子信息工程领域中一门发展迅速的新技术。 2.简要介绍EDA技术的发展历程? 答:现代EDA技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。它的成熟主要经历了计算机辅助设计(CAD,Computer Aided Design)、计算机辅助工程设计(CAED,Computer Aided Engineering Design)和电子设计自动化(EDA,Electronic System Design Automation)三个阶段。 3.什么是SOC?什么是SOPC? 答:SOC (System on Chip,片上系统) SOPC(System on a Programmable Chip,片上可编程系统) 4.对目标器件为CPLD/FPGA的VHDL设计,主要有几个步骤?每步的作用和结果分别是什

EDA技术实用教程-VHDL版课后答案

第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL 程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型? 答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 第二章 2-1 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。 2-2 IP是什么?IP与EDA技术的关系是什么? P24~26 IP是什么? 答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。 IP与EDA技术的关系是什么?答:IP在EDA技术开发中具有十分重要的地位;与EDA技术的关系分有软IP、固IP、硬IP:软IP是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP 通常是以硬件描述语言HDL源文件的形式出现。固IP是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬IP提供设计的最终阶段产品:掩模。 2-3 叙述ASIC的设计方法。P18~19 答:ASIC设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。 全定制方法是一种基于晶体管级的,手工设计版图的制造方法。 半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。 2-4 FPGA/CPLD在ASIC设计中有什么用途? P16,18 答:FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 2-5 简述在基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具,及其在整个流程中的作用。 P19~23答:基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具有:设计输入编辑器(作用:接受不同的设计输

EDA技术与VHDL语言课程设计

EDA技术与VHDL语言课程设计 课程设计 EDA技术与VHDL语言 课程设计报告 班级: 电信11-2班 姓名: 董元伟 学号: 1106110205 指导教师: 李铁 成绩: 电子与信息工程学院 信息与通信工程系 - 2 - 课程设计;数字密码锁 目录 摘 要 ..................................................................... .......................................... - 3 - 一、设计目 的 ..................................................................... ............................ - 4 - 二、设计内容和要 求 ..................................................................... .................. - 4 - 1、用户开 锁 ..................................................................... ......................... - 5 -

2、管理员解除警 报 ..................................................................... .............. - 5 - 3、管理员修改密 码 ..................................................................... .............. - 5 - 4、定时返 回 ..................................................................... ......................... - 6 - 三、设计思路和系统结构...................................................................... ............ - 6 - 1、设计模 块 ..................................................................... ......................... - 6 - 2、系统结构和数字密码锁原理 图 .............................................................. - 7 - 3、设计思 路 ..................................................................... ......................... - 8 - 四、实验设计程序 如 ..................................................................... ................... - 9 - 五、创建测试平台仿真结 果 ..................................................................... ....... - 21 - 参考文

EDA技术与VHDL语言设计

《EDA技术与VHDL语言设计》 课程设计 题目:交通灯控制器 姓名: ***** 院系:电子信息工程系 专业:电子信息工程 班级:电信112班 学号: ****** 指导教师: ****** 2013年6 月

交通灯控制器 *** (电子信息工程学系指导教师:**) 摘要:传统的交通灯控制器多数由单片机实现,本文介绍基于EDA技术设计交通灯控制器的 一种方案。EDA技术的一个重要特征是使用硬件描述语言来完成系统的设计文件,这在电子 设计领域已得到设计者的广泛采用。给出了交通灯控制器的源程序和仿真结果,仿真结果表明 该设计方案可行。 关键词:交通灯控制器;仿真;设计 1.设计原理 1.1设计要求 设计一个十字路口交通控制器,器示意图如图1.1所示,A方向和B方向歌设红(R)、黄(Y)、 绿(G)、和左拐(L)四盏灯,四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。A方向红、绿、黄、左拐灯亮的时间分别为65s、40s、5s、和15s,B方向红、绿、黄、左拐灯亮的时 间分别为55s、30s、5s、和15s。 1.2功能要求 两个方向各种灯亮的时间能够进行设置和修改,此外假设A方向是主干路,车流大,因此在 表1.2 交通灯控制器的状态 1.3设计思路和原理 根据交通灯控制器要求实现的功能,考虑用两个并行执行的always模块来分别控制A和B两个方向的四盏灯,这两个always模块使用同一个时钟信号,以进行同步。也就是说,两个always模块的敏感信号是同一个,每个模块控制一个方向的四种灯按如下顺序点亮,并往复循环:绿灯→黄灯→左拐灯→黄灯→红灯。 每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变计数器的

EDA技术与VHDL基础课后习题答案(供参考)

《EDA技术与VHDL基础》 课后习题答案 第一章EDA技术概述 一、填空题 1、电子设计自动化 2、非常高速集成芯片硬件描述语言 3、CAD、CAE、EDA 4、原理图输入、状态图输入、文本输入 5、VHDL、Verilog HDL 6、硬件特性 二、选择题 1、A 2、C 3、A 4、D 5、C 6、D 7、A 第二章可编程逻辑器件基础 一、填空题 1、PLD 2、Altera公司、Xilinx公司、Lattice公司 3、基于反熔丝编程的FPGA 4、配置芯片 二、选择题 1、D 2、C 3、C 4、D 第三章VHDL程序初步——程序结构 一、填空题 1、结构、行为、功能、接口 2、库和程序包、实体、结构体、配置 3、实体名、类型表、端口表、实体说明部分

4、结构体说明语句、功能语句 5、端口的大小、实体中子元件的数目、实体的定时特性 6、设计库 7、元件、函数 8、进程PROCESS、过程PROCEDURE 9、顺序语句、并行语句 二、选择题 1、D 2、C 3、C 4、B 5、D 6、B 7、A 8、C 三、简答题 2、 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand_3in IS PORT(a,b,c:IN STD_LOGIC; y:OUT STD_LOGIC); END; ARCHITECTURE bhv OF nand_3in IS BEGIN y<=NOT(a AND b AND c); END bhv; 5、0000 6、(247) 第四章VHDL基础 一、填空题 1、顺序语句、并行语句 2、跳出本次循环 3、等待、信号发生变化时 4、函数、过程 5、值类属性、函数类属性、信号类属性、数据类型类属性、数据范围类属性 6、程序调试、时序仿真 7、子程序、子程序 二、选择题

EDA技术与VHDL(第2版)习题解答

第3章 VHDL 基础 3-1 如图所示 input output enable buf3s mux21 in0in1output sel 3-2 程序: IF_THEN 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 S PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE one OF mux21 IS BEGIN PROCESS ( s0,s1,a,b,c,d ) BEGIN IF s1=?0? AND s0=?0? THEN y<=a ; ELSIF s1=?0? AND s0=?1? THEN y<=b ; ELSIF s1=?1? AND s0=?0? THEN y<=c ; ELSIF s1=?1? AND s0=?1? THEN y<=d ; ELSE y<=NULL ; END IF ; END PROCESS ; END ARCHITECTURE one ; CASE 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 IS

PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE two OF mux21 IS SIGNAL s : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; BEGIN s<=s1 & s0 ; PROCESS ( s ) BEGIN CASE s IS WHEN “00” => y<=a ; WHEN “01” => y<=b ; WHEN “10” => y<=c ; WHEN “11” => y<=d ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ARCHITECTURE two ; 3-3 程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY MUXK IS PORT ( s0,s1 : IN STD_LOGIC ; a1,a2,a3 : IN STD_LOGIC ; outy : OUT STD_LOGIC ) ; END ENTITY MUXK ; ARCHITECTURE double OF MUXK IS SIGNAL tmp : STD_LOGIC ; --内部连接线 SIGNAL u1_s, u1_a, u1_b, u1_y : STD_LOGIC ; SIGNAL u2_s, u2_a, u2_b, u2_y : STD_LOGIC ; BEGIN p_MUX21A_u1 : PROCESS ( u1_s, u1_a, u1_b, u1_y ) BEGIN

完整word版,EDA技术与VHDL(A卷答案)

4.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是C。 A. FPGA是基于乘积项结构的可编程逻辑器件; B. FPGA是全称为复杂可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX3000系列属FPGA结构。 5.以下对于进程PROCESS的说法,正确的是: A A. 进程语句本身是并行语句 B. 进程内部由一组并行语句来描述进程功能 C. 进程之间可以通过变量进行通信 D. 一个进程可以同时描述多个时钟信号的同步时序逻辑 6.在VHDL语言中,下列对时钟上升沿检测描述中,错误的是C。 A. if clk’event and clk = ‘1’ then B. if rising_edge(clk) then C. if clk’event and clk = ‘0’ then D. if not clk’stable and clk = ‘1’ then 7.关于VHDL中的数字,请找出以下数字中数值最大的一个:B A. 2#1111_1110# B. 8#366# C. 10#169# D. 16#F#E1 8.下列标识符中,B是不合法的标识符。 A. State0 B. 9moon C. Not_Ack_0 D. signall 9.下列语句中,不属于并行语句的是:D A.进程语句 B.条件信号赋值语句 C.元件例化语句 D.IF语句 10. 状态机编码方式中,其中 C 占用触发器较多,但其实现比较适合FPGA的应用 A. 状态位直接输出型编码 B. 顺序编码 C. 一位热码编码 D. 以上都不是

EDA技术与VHDL程序开发基础教程 教学资料第二章

2.8.1填空 1.可编程逻辑器件的英文全称是Programmable Logic Device 2.可编程逻辑器件技术经历了PROM 、PLA、PAL 三个发展阶段 3. CPLD的基本结构包括可编程逻辑阵列块、输入/输出块、互联资源三个部分 4.目前市场份额较大的生产可编程逻辑器件的公司有Altera 、Xillinx 、Lattice 5.根据器件应用技术FPGA可分为基于SRAM编程的FPGA、基于反熔丝编程的FPGA 6. 快速通道/互联通道包括行互连、列互联、逻辑阵列块、逻辑单元 7.常用的的FPGA配置方式为主动串行、主动并行、菊花链 8.实际项目中,实现FPGA的配置常常需要附加一片EPROM 9.球状封装的英文缩写为BGA 10.CPLD/FPGA选型时主要考虑的因素有器件逻辑资源、芯片速度、功耗、封装2.8.2选择 1. 在下列可编程逻辑器件中,不属于高密度可编程逻辑器件的是(D) A EPLD B CPLD C FPGA D PAL 2. 在下列可编程逻辑器件中,属于易失性器件的是(D) A EPLD B CPLD C FPGA D PAL 3.下列逻辑部件中不属于Altera公司CPLD的是(A) A通用逻辑块(GLB) B可编程连线阵列(PIA) C输入输出控制(I/O) D逻辑阵列块(LAB) 4.下列逻辑部件中不属于Lattice公司CPLD的是(D) A通用逻辑块(GLB) B全局布线区(GRP) C输出布线区(ORP) D逻辑阵列块(LAB) 5.下列FPGA中不属于Xilinx公司产品的是(D) A XC4000 B Virtex

《VHDL语言与EDA技术》课程试卷答案

《VHDL语言与EDA技术》课程试卷(1)答案 一、分析下列代码。 1、试分析,该代码描述的是什么功能电路? 答:模8计数器 2、 试分析,该代码描述的是什么功能电路? 答:四位二进制码输入,LED七段码显示电路 若不写第24行代码,是否可以?说明理由。 答:不可以,否则输入0000-1001以外的数据时就无法继续执行代码。 3、试分析,在该代码中,第8行“f<=temp1 XOR temp2;”写在第九行“temp1<=a AND b; ”和第十行“temp2<=c OR d;”前面,这种书写顺序对功能的实现有没有影响? 答:没有 该代码中有一个错误,在第4行,此行语句应改为END exam; 4、 试分析,该代码描述的是什么功能电路? 答:通用译码器 第4句中的端口ena 是使能信号输入端,在此代码描述的电路中,ena为0还是为1时电路能有效完成期望功能? 答:1 此代码描述中,第11句和第12句中,x'high 代表的值是多少? 答:7 二、填空,补全下列代码。 1、output: OUT std_logic_vector( 7 downto 0) ); (OTHERS=>' Z'); 2、 q:OUT STD_LOGIC_VECTOR (1 DOWNTO 0)); SIGNAL q_tmp: STD_LOGIC_VECTOR(1 DOWNTO 0); process( clk) IF(clk'event and clk=' 1 ')then q_tmp <= ( others =>'0'); end if; end process ;

end rtl; 三、设计程序,完成下列功能 1、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY fulladder IS PORT (a, b, cin: IN BIT; s, cout: OUT BIT); END fulladder; ARCHITECTURE rtl OF fulladder IS BEGIN s<=a XOR b XOR cin; cout<=(a AND B) OR (a AND cin) OR (b AND cin); END rtl; 2、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff1 IS PORT(d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC); END dff1; ARCHITECTURE behavior OF dff1 IS BEGIN PROCESS (rst, clk) BEGIN IF (rst='1') THEN q<='0'; ELSIF ( clk'EVENT AND clk='1' ) THEN q<=d; END IF; END PROCESS; END behavior; 四、简答题 1、 进程(process)内部的语句是一种顺序描述语句,其内部经常包括if,wait,case或loop语句。 特点: 1、进程与进程,或其它并发语句之间的并发性; 2、进程内部的顺序性; 3、要么使用敏感信号列表(sensitivity list),要么使用wait语句,二者不可同时使用。 4、进程必须包含在主代码段中,当敏感信号列表中的某个信号发生变化,或者wait语句的条件满足时,process内部的代码就顺序执行一次;

EDA技术与VHDL语言重点复习必备

1.EDA即Electronic Design Automation(电子设计自动化),就是以计算机为工作平台,以EDA 软件工具为开发环境,以硬件描述语言(HDL)为设计语言,以可编程逻辑器件为实验载体,以ASIC(Application Specific Integrated Circuit)、SOC(System On a Chip)芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。 2.EDA最后实现的目标:全定制或半定制ASIC设计,FPGA/CPLD开发应用。 3.作为EDA技术最终实现目标的ASIC,通过三种途径来完成:(1)超大规模可编程逻辑器件:实现这一途径的主流器件是FPGA/CPLD。直接面向用户,具有极大的灵活性和通用性,使用方便,开发效率高,成本低,技术维护简单,工作可靠性好。(2)半定制或全定制ASIC:根据实现工艺,可统称为掩膜ASIC,可编程的ASIC具有灵活多样的编程功能。掩膜ASIC分为:门阵列、标准单元、全定制三类。(3)混合ASIC:具有面向用户的编程功能和逻辑资源,同时也含有可方便调用和配置的硬件标准单元模块。 4.EDA设计分五级进行分层次设计:(1)系统级即行为级;(2)RTL级;(3)门级:即逻辑设计,以电路或触发器作基本部件,表达各种逻辑关系;(4)电路级:可看作分离的元件为基本元件,具体表达电路在时域的伏安特性或频域的响应等性能;(5)器件级:即板图级。 5.面向FPGA的开发流程:设计输入(图形输入、文本输入)、综合、布线布局(适配)、仿真(时序仿真、功能仿真)、下载和硬件测试。 6.综合的概念:电子设计中,将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程称为综合。事实上,设计过程中的每一步都可称为一个综合环节。 7.综合的分类:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。8.在EDA技术中,自顶向下的设计方法的重要意义是什么? 在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 9.综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 8.适配器:也称结构适配器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。 9.时序仿真:是接近真实器件运行特性的仿真,仿真文件中己包含了器件硬件特性参数,因而,仿真精度高。 10.功能仿真:是直接对VHDL、原理图或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求的过程,仿真过程不涉及任何具体器件的硬件特性。11.时序仿真与功能仿真的区别:时序仿真的仿真文件必须来自针对具体器件的适配器。综合后所得的EDIF等网表文件通常作为FPGA适配器的输入文件,产生的仿真网表文件中包含了精确的硬件延迟信息。功能仿真的过程不涉及任何具体器件的硬件特性。不经历适配阶段,在设计项目编辑编译(或综合)后即可进入门级仿真器进行模拟测试。直接进行功能仿真的好处是设计耗时短,对硬件库、综合器等没有任何要求。 12.IP定义为用于ASIC或FPGA/CPLD中预先设计好的电路功能模块。 13.IP分为软IP(用VHDL等硬件面熟语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能)、固IP(完成了综合的功能块)和硬IP(提供设计的最终阶段产品-掩膜)。 14.基于VHDL的自顶向下设计方法(1)设计说明书(2)建立VHDL行为模型(3)VHDL行为仿真(4)VHDL-RTL级建模(5)前端功能仿真(6)逻辑综合(7)测试向量生成(8)功

EDA技术与VHDL(复习提纲)

EDA技术与VHDL 第1章概述 第2章PLD硬件特性与编程技术 第3章VHDL基础 1. 实体的概念?程序<-->元件图 2. 结构体的概念?程序<-->逻辑电路 3. P42页图3-2对应的逻辑表达式是什么?为什么能够实现2选1多路选择器? 4. 2选1多路选择器的3种实现方法? 真值表<-->逻辑表达式<-->逻辑电路图<-->程序? 5. P44页图3-3/mux21a功能时序波形的理解? 6. 标识符能用关键词起名,也能用EDA工具库中预定义的元件名起名? 7.综合的作用或意义? 8. 可综合的端口模式分别是?数据的流动方向和方式? 9. INOUT、BUFFER的区别? 10.什么是RTL? 11.什么是VHDL的RTL描述? 12.在VHDL中,所有合法的顺序描述语句都必须放在进程语句中?13.通常要求将进程中所有的输入信号都放在敏感信号表中?14.试叙述进程的?启动-运行?过程?

15.在一个结构体中只能包含一个进程语句结构? 16.所有进程语句都是并行语句? 17.任一进程PROCESS内部语句结构属于顺序语句? 18.VHDL代码文件的后缀扩展名是? 19.建议程序文件名与该程序的实体名一致? 20.文件名区分大小写吗? 21.P48页例3-6,D触发器工作原理? 22.STD_LOGIC数据类型定义的数据有几个?分别是什么?什么含义?综合器支持哪几个数据? 23.关键词?EVENT?的作用? 24.假设clock的数据类型是BIT,试解释为什么?clock’ EVENT AND clock=’1’”表达式是用来对clock的上升沿进行检测?25.结合P48例3-6说明,为什么不完整条件语句是构建时序电路的关键? 26.检测时钟信号上升沿的不同表述方法?(4) &27.半加器:真值表<-->逻辑表达式<-->逻辑电路图<-->程序?28.全加器电路图? 29.双横线?--?? 30.元件例化语句的表达式?例化名和元件名如何理解?PORT MAP ()端口映射语句中的?端口名=>连接端口名?,端口名和连接端口名的区分? 31.试用两种方法设计4位二进制加法计数器?(1:BUFFER;2:

EDA技术与VHDL期末复习

1.下降沿与上升沿的描述。 a)上升沿:clock’event and clock=’1’ rising_edge() b)下降沿:clock’event and clock=’0’ falling_edge() 2.信号与变量的区别 3.实体中有哪些端口,及其含义。 in: 输入型,此端口为只读型。 out: 输出型,只能在实体内部对其赋值。 inout:输入输出型,既可读也可赋值。 buffer: 缓冲型,与 out 相似,但可读。 4.编程,配置。 通常,将对CPLD的下载称为编程,对FPGA中的SRAM进行直接下载的方式称为配置,但对于OTP FPGA的下载和对FPGA的专用配置ROM的下载仍称为编程 5.3-8译码器真值表,写程序 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; Array ENTITY coder IS PORT(A : IN STD_LOGIC_VECTOR(1 TO 3) Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END coder ; ARCHITECTURE a1 or coder IS Begin IF A=“000” THEN Y<=“00000001”; ELSIF A=“001” THEN Y<=“00000010”; ELSIF A=“010” THEN Y<=“00000100”; ELSIF A=“011” THEN Y<=“00001000”; ELSIF A=“100” THEN Y<=“00010000”; ELSIF A=“101” THEN Y<=“00100000”; ELSIF A=“110” THEN Y<=“01000000”; ELSE Y<=“10000000”; END IF; END a1; 6.CPLD,FPGA的中文含义 CPLD:(Complex Programmable Logic Device)复杂可编程逻辑器件 FPGA:(Field Programmable Gate Array)现场可编程门阵列 ASIC:(Application Specific Integrated Circuit)专用集成电路 7.常用的库、包 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_Arith.all;

EDA技术VHDL语言

EDA技术VHDL语言课程大作业 设计题目:分频电路 姓名:段亮 班级:自动化10(4) 学号: 41003010410

一.设计背景 EDA电子设计自动化是Electronic Design Automation的简称,20世纪60年代中期发展开始至今,已经取得了飞跃性的进步,在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已经非常普及,这些可编程逻辑器件为数字系统的设计带来了相当大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构和改变,这就使得硬件的设计可以如同软件设计那样方便快捷效率高,可编程逻辑器件加快了EDA技术的发展,在现代社会,尤其是电子信息科技行业发展突飞猛进,在化工、机械、电子、通信、医学、航空航天、矿产、生物、军事等各个领域都有EDA的广泛应用在数字逻辑电路设计中,分频器是一种基本电路,通常用来对某个给定频率的时钟进行分频,得到所需的时钟。时序电路设计中需要各种各样的分频器来获得不同频率的时钟,其中以整数分频器最为常见。但是在某些需要使用电平逻辑的设计中,我们更希望分频时钟拥有50%的占空比,或者与驱动时钟相同的占空比。这时就需要通过另外的逻辑方法来进行分频,本作业就针对奇数分频占空比50%进行设计。 本作业题目:分频电路:将20M的时钟信号分频生成5khz的方波,再将此方波分频生成1khz占空比为50%的方波。 二. 设计方案 2.1分频总体思路 首先对20MHZ的频率进行分频,将其分成5KHZ的频率,再此将

5KHZ的频率分成1KHZ的占空比是50%的方波。 2.2 计时模块系统流程框图 2.3 设计思路 本课题的主要解决问题是对占空比是50%的方波,由于最后需要将5KHZ的频率分成1KHZ的占空比是50%的方波,其解决方案是: 1.任意占空比的偶数分频及非等占空比的奇数分频,通常由计数器或计数器的级联来完成。 2.等占空比的奇数分频电路。要实现占空比为50%的M=2N+1分频电路。 对于占空比为非 50%的输出时钟在输入时钟的上升沿触发翻转。若在同一个输入时钟周期内,此计数器分别在输入时钟的上升沿和下降沿触发翻转得到的两路信号,再将所得到的信号进行逻辑或,即可得到占空比为 50%的奇数倍分频时钟。另外,对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。再者同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n 分频时钟。另外一种方法:对进行奇数倍n分频时钟,首先进行n/2分频(带小数,即等于(n-1)/2+0.5),然后再进行二分频得到。得到占空比为50%的奇数倍分频。奇数倍分频原理下图所示:

EDA技术与VHDL复习题

第一部分 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD 是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC (片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。 1-2与软件描述语言相比,VHDL有什么特点? 答:编译器将软件程序翻译成基于某种特定CPU 的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是

根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。

EDA技术课后答案

EDA习题第一章 1.1 EDA的英文全称是什么?EDA的中文含义是什么? 答:EDA即Electronic Design Automation的缩写,直译为:电子设计自动化。 1.2 什么叫EDA技术? 答:EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。 1.3 利用EDA技术进行电子系统的设计有什么特点? 答:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级; ⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。 1.4 从使用的角度来讲,EDA技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用? 答:EDA技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。 对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。 对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。 对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。 对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行硬件验证或变通地进行硬件验证。 1.5 什么叫可编程逻辑器件(简称PLD)?FPGA和CPLD的中文含义分别是什么?国际上生产FPGA/CPLD的主流公司,并且在国内占有较大市场份额的主要有哪几家?其产品系列有哪些?其可用逻辑门/等效门数大约在什么范围? 答:可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。 国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。 Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用门数为1200~18 000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE 系列等,提供门数为5000~25 000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25 000个PLD等效门。

EDA技术—VHDL版期末试卷(含答案)

2010—2011学年第一学期期末考试试卷(闭卷) 年级 2008 专业信息处理与交换(本)课程名称 EDA技术基础 教师出题时请勿超出边界虚线; 2、学生答题前将密封线外的内容填写清楚,答题不得超出密封线; 3、答题请用蓝、黑钢笔或圆珠笔。 一、单项选择题(30分) 1.以下描述错误的是 C A.QuartusII是Altera提供的FPGA/CPLD 集成开发环境 B.Altera是世界上最大的可编程逻辑器件 供应商之一 C.MAX+plusII是Altera前一代FPGA/CPLD 集成开发环境QuartusII的更新换代新 产品 D.QuartusII完全支持VHDL、Verilog的 设计流程 2.以下工具中属于FPGA/CPLD开发工具中的 专用综合器的是 B A.ModelSim B.Leonardo Spectrum C.Active HDL D.QuartusII

3.以下器件中属于Xilinx 公司生产的是 C A.ispLSI系列器件 B.MAX系 列器件 C.XC9500系列器件 D.FLEX系 列器件 4.以下关于信号和变量的描述中错误的是 B A.信号是描述硬件系统的基本数据对象, 它的性质类似于连接线 B.信号的定义范围是结构体、进程 C.除了没有方向说明以外,信号与实体的 端口概念是一致的 D.在进程中不能将变量列入敏感信号列表中 5.以下关于状态机的描述中正确的是 B A.Moore型状态机其输出是当前状态和所有输入的函数 B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期 C.Mealy型状态机其输出是当前状态的函数 D.以上都不对 6.下列标识符中, B 是不合法的标识符。

相关文档
相关文档 最新文档