数字系统设计与Verilog HDL

更新时间:2024-05-04 02:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字系统设计与Verilog HDL (复习)

EDA(Electronic Design Automation)

就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。 1.电子CAD(Computer Aided Design)

2.电子CAE(Computer Aided Engineering) 3.EDA(Electronic Design Automation) EDA技术及其发展 p2

EDA技术的应用范畴

1.3 数字系统设计的流程

基于FPGA/CPLD

的数字系统设计流程

1. 原理图输入(Schematic diagrams ) 2、硬件描述语言 (HDL文本输入) 设计输入

硬件描述语言与软件编程语言有本质的区别

综合(Synthesis)

将较高层次的设计描述自动转化为较低层次描述的过程

◆行为综合:从算法表示、行为描述转换到寄存器传输级(RTL) ◆逻辑综合:RTL级描述转换到逻辑门级(包括触发器) ◆版图综合或结构综合:从逻辑门表示转换到版图表示,或转换到PLD器件的配置网表表示

综合器是能自动实现上述转换的软件工具,是能将原理图或HDL语言描述的电路功能转化为具体电路网表的工具

适 配

适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件

对CPLD器件而言,产生熔丝图文件,即JEDEC文件;对FPGA器件则产生Bitstream位流数据文件 p8

仿真(Simulation)

功能仿真(Function Simulation) 时序仿真(Timing Simulation) 仿真是对所设计电路的功能的验证 p9

编程(Program)

把适配后生成的编程文件装入到PLD器件中的过程,或称为下载。

通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(Program),将基于SRAM工艺结构的PLD器件的下载称为配置(Configure)。

习 题

1.1 现代EDA技术的特点有哪些? 1.2 什么是Top-down设计方式?

1.3 数字系统的实现方式有哪些?各有什么优缺点?

1.4 什么是IP复用技术?IP核对EDA技术的应用和发展有什么意义? 1.5 用硬件描述语言设计数字电路有什么优势?

1.6 基于FPGA/CPLD的数字系统设计流程包括哪些步骤? 1.7 什么是综合?常用的综合工具有哪些?

1.8 功能仿真与时序仿真有什么区别? 第2章 FPGA/CPLD器件

2.1 PLD的分类 PLD的发展历程

PLD的集成度分类

可编程逻辑器件(PLD) 简单PLD 复杂PLD PROM PLA PAL GAL CPLD FPGA

一般将GAL22V10(500门~750门 )作为简单PLD和高密度PLD的分水岭

PLD器件按照可以编程的次数可以分为两类:

(1) 一次性编程器件(OTP,One Time Programmable) (2) 可多次编程器件

OTP类器件的特点是:只允许对器件编程一次,不能修改,而可多次编程器件则允许对器件多次编程,适合于在科研开发中使用。 按编程特点分类 p15

(1)熔丝(Fuse)

(2)反熔丝(Antifuse)编程元件

(3)紫外线擦除、电可编程,如EPROM。

(4)电擦除、电可编程方式,(EEPROM、快闪存储器(Flash Memory)),如多数CPLD (5)静态存储器(SRAM)结构,如多数FPGA 按编程元件和编程工艺分类

PLD器件的原理结构图 2.2 PLD的基本原理与结构

PLD电路符号表示

与门、或门的表示

PLD连接表示法

PLD的输入缓冲电路

简单阵列的表示

p20 PROM

PROM表达的PLD阵列图

p21 PROM

用PROM完成半加器逻辑阵列

F0?A0A1?A0A1F1?A1A0

p22

2.5 FPGA的原理与结构 查找表结构

4输入LUT及内部结构图 p23

习 题

2.1 PLA和PAL在结构上有什么区别?

2.2 说明GAL的OLMC有什么特点,它怎样实现可编程组合电路和时序电路? 2.3 简述基于乘积项的可编程逻辑器件的结构特点? 2.4 基于查找表的可编程逻辑结构的原理是什么? 2.5 基于乘积项和基于查找表的结构各有什么优缺点?

2.6 CPLD和FPGA在结构上有什么明显的区别,各有什么特点? 2.7 FPGA器件中的存储器块有何作用? p24

第3章 Quartus II集成开发工具

基于Quartus II进行EDA设计开发的流程 p26

设计一个半加器

p27

设计一个全加器

连接好的全加器原理图f_adder.bdf

习 题

3-1 基于Quartus II软件,用D触发器设计一个2分频电路,并做波形仿真,在此基础上,设计一个4分频和8分频电路,做波形仿真。 。 3-2 基于Quartus II软件,用7490设计一个能计时(12小时)、计分(60分)和计秒(60秒)的简单数字钟电路。设计过程如下:

(1)先用Quartus II的原理图输入方式,用7490连接成包含进位输出的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;

(2)将7490连接成模12的计数器,进行仿真,如果功能正确,也将其生成一个部件; (3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满12小时后系统清0重新开始计时。

(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。

第4章 基于宏功能模块的设计

8位有符号乘法器电路 功能仿真波形 p31

p76

思考与练习

7.1 试编写求补码的Verilog程序,输入是带符号的8位二进制数。 7.2 试编写两个四位二进制数相减的Verilog程序。

7.3 有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。试编写出Verilog程序。

7.4 试编写一个实现3输入与非门的Verilog源程序。 p77

思考与练习

7.5 用Verilog语言设计一个类似74138的译码器电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。

7.6 用Verilog语言设计一个功能类似74161的电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。

7.7 用Verilog设计一个8位加法器,用Quartus II软件进行综合和仿真。 7.8 用Verilog设计一个8位计数器,用Quartus II软件进行综合和仿真。

第8章 数字设计的层次与风格 p79

Verilog设计的描述风格 结构(Structural)描述 行为(Behavioural)描述 数据流(Data Flow)描述 p80

在Verilog程序中可通过如下方式描述电路的结构 ◆ 调用Verilog内置门元件(门级结构描述) ◆ 调用开关级元件(晶体管级结构描述) ◆ 用户自定义元件UDP(也在门级) 8.2 结构(Structural)描述 p81

门级结构描述的2选1MUX

module MUX1(out, a, b, sel); output out;

input a, b, sel; not (sel_, sel); and (a1, a, sel_), (a2, b, sel); or (out, a1, a2); endmodule

p82

8.3 行为描述

就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现。 p83

行为描述的2选1MUX

module mux2(out, a, b, sel); output out;

input a, b, sel; reg out;

always @(a or b or sel) begin

if(sel) out = b; else out = a; end

endmodule

p84

8.4 数据流描述

数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为:

assign LHS_net=RHS_expression;

右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算, 并将重新计算后的值赋予左边表达式的net型变量。 p85

数据流描述的2选1MUX

module MUX3(out, a, b, sel); output out;

input a, b, sel;

assign out = sel ? b : a; endmodule

p86

`include \

module add4_1(sum, cout, a, b, cin); output [3:0] sum; output cout;

input [3:0] a, b; input cin;

full_add1 f0(a[0],b[0],cin,sum[0],cin1); full_add1 f1(a[1],b[1],cin1,sum[1],cin2); full_add1 f2(a[2],b[2],cin2,sum[2],cin3); full_add1 f3(a[3],b[3],cin3,sum[3],cout); endmodule

结构描述的4位级连全加器 p87

module add4_2(cout,sum,a,b,cin); output[3:0] sum; output cout; input[3:0] a,b; input cin;

assign {cout,sum}=a+b+cin; endmodule

数据流描述的4位加法器 p88 习 题

8.1 Verilog支持哪几种描述方式,各有什么特点?

8.2 分别用结构描述和行为描述方式设计一个基本的D触发器,并进行综合。 8.3 分别用结构描述和行为描述方式设计一个JK触发器,并进行综合。 8.4 试编写同步模5计数器程序,有进位输出和异步复位端。 8.5 编写4位串/并转换程序。 8.6 编写4位并/串转换程序。 8.7 编写4位除法电路程序。

本文来源:https://www.bwwdw.com/article/pxig.html

Top