王金明 电子设计自动化第六章课件(非原版)讲解

上传人:我** 文档编号:116849761 上传时间:2019-11-17 格式:PPT 页数:65 大小:534KB
返回 下载 相关 举报
王金明 电子设计自动化第六章课件(非原版)讲解_第1页
第1页 / 共65页
王金明 电子设计自动化第六章课件(非原版)讲解_第2页
第2页 / 共65页
王金明 电子设计自动化第六章课件(非原版)讲解_第3页
第3页 / 共65页
王金明 电子设计自动化第六章课件(非原版)讲解_第4页
第4页 / 共65页
王金明 电子设计自动化第六章课件(非原版)讲解_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《王金明 电子设计自动化第六章课件(非原版)讲解》由会员分享,可在线阅读,更多相关《王金明 电子设计自动化第六章课件(非原版)讲解(65页珍藏版)》请在金锄头文库上搜索。

1、第6章 Verilog设计进阶 学习目标及重点 1 学习目标 1)掌握verilog行为语句的基本格式、执行机制; 2)建立使用verilog行为语句编写组合逻辑、时 序逻辑的基本概念; 3)了解仿真激励文件的基本写法; 4) 进一步理解程序与硬件之间的关系。 2 学习重点 1)算法的基本概念; 2)算法与verilog语言的结合使用; 3)可综合的verilog行为语句; 算法的基本概念 1.什么是算法? 并不是需要计算的场合才有算法。 算法,简单的说,就是解决问题的方法及步骤。 2.算法与verilog程序的关系 算法是verilog程序实现对象。 3.算法的多样性 4.算法的实现 1)

2、算法的设计不能天马行空,要具有可实现性; 2) 可实现性的基础: 基于何种工具实现算法,那么算法的特征 要与这种工具本身的特征相契合。 我们所使用的工具:verilog编程语言。 算法的基本概念 设计算法 分析算法的行为特征 利用verilog语言实 现 掌握verilog行为语句的运行机理 分析问题 Verilog HDL行为语句 类别语句可综合性 过程语句 initial always 块语句串行块begin-end 并行块fork-join 赋值语句持续赋值assign 过程赋值=、=0;i=i-1) outi=ai end endtask 端口定义,注意a,b,out的作用范围是在该任

3、务 内部 变量数据类型定义 6.7 任务与函数 always(code or a or b) begin case(code) 2b00: my_and (a,b,c); 任务调用 /这里的a,b,c分别对应任务定义中的a,b,out . endcase end endmodule 使用任务时,需要注意以下几点: 1) 任务的定义与调用须在一个module模块内。 2) 定义任务时,没有端口名列表,但需要紧接着进行输入输 出 端口和数据类型的说明。 3) 任务的调用通过任务名调用实现,调用时,需列出端口名 列 表,端口名的排序和类型必须与任务定义中的相一致。 4) 一个任务可以调用别的任务和函

4、数,可以调用的任务和函 数个数不限。 1) 函数(function) 函数的目的是返回一个值,以用于表达式的计算。 2) 函数的定义格式: function 函数名; 端口声明; 局部变量定义; 其它语句; endfunction 注意 : 1)是一个可选项,如果缺省,则 返回值为1位寄存器类型的数据。 2)函数调用是通过将函数作为表达式中的操作数来实现的 。 3)函数的返回值是通过对其函数名赋值得到的。 函数 函数举例 例: 定义: function7:0 get0; input7:0 x; reg7:0 count; integer i; begin count=0; for (i=0;i

5、=7;i=i+1) if(xi=1b0) count=count+1; get0=count; end endfunction 调用: assign out=is_legal?get0(in):1b0; 在使用函数时,需注意 1) 函数的定义与调用须在一个module模块内。 2) 函数只允许有输入变量且必须至少有一个输入变量, 输 出变量由函数名本身担任,在定义函数时,需对函数 名 说明其类型和位宽。 3) 定义函数时,没有端口名列表,但调用函数时,需列 出 端口名列表,端口名的排序和类型必须与定义时的相 一 致。这一点与任务相同 4) 函数可以出现在持续赋值assign的右端表达式中。 5

6、) 函数不能调用任务,而任务可以调用别的任务和函数 , 且调用任务和函数个数不受限制。 任务与函数的比较 6.8 顺序执行与并发执行 总结: 1)两个或更多个“always”过程块、“assign”持续赋 值语 句、实例元件调用等操作都是同时执行的。 2)在“always”模块内部,其语句如果是非阻塞赋值 ,也 是并发执行的;而如果是阻塞赋值,则语句是按照 指 定的顺序执行的,语句的书写顺序对程序的执行结 果 有着直接的影响。 顺序执行的例子 顺序执行模块1 module serial1(q,a,clk); output q,a; input clk; reg q,a; always (pos

7、edge clk) begin q=q; a=q; end endmodule 顺序执行模块2 module serial2(q,a,clk); output q,a; input clk; reg q,a; always(posedge clk) begin a=q; q=q; end endmodule 顺序执行 顺序执行模块1仿真波形图 顺序执行模块2仿真波形图 顺序执行模块1综合结果 顺序执行模块2综合结果 思考与练习 6-1 试编写求补码的Verilog程序,输入是带符号的8位二进制数。 6-2 试编写两个四位二进制数相减的Verilog程序。 6-3 有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否 则为0。试编写出Verilog程序。 6-4 试编写一个实现3输入与非门的Verilog源程序。 6-5 用Verilog语言设计一个类似74138的译码器电路,用Synplify软件 对设计文件进行综合,观察RTL级综合视图和门级综合视图。 6-6 用Verilog语言设计一个功能类似74161的电路,用Synplify软件对 设计文件进行综合,观察RTL级综合视图和门级综合视图。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号