VerilogHDL设计方法简介算法实现_第1页
VerilogHDL设计方法简介算法实现_第2页
VerilogHDL设计方法简介算法实现_第3页
VerilogHDL设计方法简介算法实现_第4页
VerilogHDL设计方法简介算法实现_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VerilogHDL设计方法简介算法实现 Verilog HDL设计方法简介 算法实现 用于数字信号传输中所必需的滤波、变换、 加密、解密、编码、解码、纠检错、压缩、 解压缩等操作。 硬线逻辑 由与门、或门、非门、触发器、多路器等 基本逻辑部件造成的逻辑系统。 从算法设计到硬线逻辑的实现 VerilogHDL设计方法简介算法实现 什么是复杂的数字逻辑系统? 嵌入式微处理机系统 数字信号处理系统 高速并行计算逻辑 高速通信协议电路 高速编码/解码、加密/解密电路 复杂的多功能智能接口 门逻辑总数超过几万门达到几百甚至达几 千万门的数字系统 VerilogHDL设计方法简介算法实现 有哪几种硬件描

2、述语言? 各有什么特点? VerilogHDL设计方法简介算法实现 Verilog程序结构 一个完整的电路系统由若干模 块构成 一个模块可由若干子模块构成 模块类比C语言函数 是verilog的基本单位 描述么个功能或结构,以及与其 他模块的通信接口 一个模块是相对独立的功能体, 一般通过高层模块调用其他模块 的实例构成系统 模块是并行运行的 Module 模块名(端口列表); endmodule 端口定义: Input 输入端口 Output输出端口 Inout输入/输出端口 数据类型说明: Reg Wire parameter 逻辑功能定义: Assign Always Function

3、Task VerilogHDL设计方法简介算法实现 Verilog程序结构 VerilogHDL设计方法简介算法实现 verilogHDL语法要素 语言要素 注释、间隔符、标识符、关键字、运算符 数据类型 名字空间 表达式 模块 结构级 行为级 代码风格 VerilogHDL设计方法简介算法实现 verilogHDL数据类型 数据值 0、1、x、z 数据类型 网络(wire ) 变量(reg ) 只有reg和integer可综合 reg只能在initial或always内被赋值 Verilog中将reg视为无符号数,而integer视为有符号数。因此, 进行有符号操作时使用integer,使用

4、无符号操作时使用reg。 参数parameter 向量 指定了长度的wire或reg称为矢量(否则为标量) 多维向量:wire型(结构化描述);reg型(行为化描述) 存储器:reg型向量 向量的可访问性 VerilogHDL设计方法简介算法实现 VerilogHDL设计方法简介算法实现 Verilog中reg与wire的不同点 aout2 BUFF b INV out1 VerilogHDL设计方法简介算法实现 Verilog中reg与wire的不同点 d out2 AND2i1 clk out1 D Q DFF VerilogHDL设计方法简介算法实现 Verilog HDL模块的结构 a

5、nd #1 u3(selb,b,sl); VerilogHDL设计方法简介算法实现 Verilog HDL模块中的逻辑表示 在Verilog 模块中有三种方法可以生成逻辑电路: - 用 assign 语句: assign cs = ( a0 - 用元件的实例调用: and2 and_inst ( q, a, b); - 用 always 块: always (posedge clk or posedge en) begin if (clr) q= 0; else if (en) q= d; end VerilogHDL设计方法简介算法实现 并行和顺序逻辑关系的表示 如在模块中逻辑功能由下面三个

6、语句块组成 : assign cs = ( a0 / -1 and2 and_inst ( qout, a, b); / -2 always (posedge clk or posedge clr) /-3 begin if (clr) q= 0; else if (en) q= d; end 1、2、3三条语句是并行的,它们产生独立的逻辑 电路; 而在 always 块中: begin与end之间是顺序执行的。 VerilogHDL设计方法简介算法实现 out a b sl selb sela nsl 只有实例调用 Module tan (out, a, b, sl); input a,b,

7、sl; output out; not u1(ns1,sl); and #1 u3(selb,b,sl); and #1 u2(sela,a,nsl); or #2 u4(out,sela,selb); endmodule VerilogHDL设计方法简介算法实现 行为级 aout2 BUFF b INV out1 VerilogHDL设计方法简介算法实现 行为级模块描述语句过程语句过程语句 Initial语句不能被综合 带延时控制的语句 带顺序过程的语句(beginend) 只执行一次 Always语句 敏感信号为组合逻辑的语句 敏感信号为时钟沿的语句(时序逻辑) 语句则不断重复执行 Ver

8、ilogHDL设计方法简介算法实现 行为级模块描述语句语句块语句块 将两条或更多条语句合成语法结构上相 当于一条语句的机制。 顺序语句块(begin end) 语句按顺序一次执行 并行语句块(fork join) 块内语句并发执行 VerilogHDL设计方法简介算法实现 行为级模块描述语句赋值语句赋值语句 门基元赋值语句 连续赋值语句(assign)针对组和逻辑 过程赋值语句(只出现在always语句中 ) 阻塞赋值语句(=) 首先计算右边的值,然后立即赋给左边 顺序块内的语句依次执行,并行块内语句并行执行 多用于行为仿真和时序仿真 非阻塞赋值语句(=) 在beginend顺序块中,语句间并

9、发执行 仿真中,先计算右边的值,在时钟沿统一赋值给左边 VerilogHDL设计方法简介算法实现 Verilog中两种不同的赋值语句 clk DFF c D QD Q ab DFF VerilogHDL设计方法简介算法实现 Verilog中两种不同的赋值语句 clk DFF c D Q a b VerilogHDL设计方法简介算法实现 两种不同的赋值语句区别要点 。 VerilogHDL设计方法简介算法实现 两种不同的赋值语句区别要点 阻塞赋值和非阻塞赋值就该赋值本身是没有区别的, 只是对后面的语句有不同的影响。 建议设计组合逻辑电路时用阻塞赋值,设计时序电 路时用非阻塞赋值。 过程性赋值的赋

10、值对象有可能综合成wire,latch,和 flip-flop,取决于具体状况。如,时钟控制下的非阻 塞赋值综合成flip-flop。 过程性赋值语句中的任何延时在综合时都将忽略。 建议同一个变量单一地使用阻塞或者非阻塞赋值。 VerilogHDL设计方法简介算法实现 行为级模块描述语句分支语句语句 是verilog中的高级程序语句来源于C If_else分支控制语句 单分支、双分支、嵌套 Case分支控制语句 执行第一个匹配项,各匹配项不需要互斥 表达式不一定是常量表达式 VerilogHDL设计方法简介算法实现 行为级模块描述语句循环语句循环语句 forever循环 repeat循环 wh

11、ile循环 for循环 VerilogHDL设计方法简介算法实现 关于调用 实例调用实例调用 函数调用函数调用 任务调用任务调用 VerilogHDL设计方法简介算法实现 组合逻辑设计要点 VerilogHDL设计方法简介算法实现 组合逻辑设计要点 VerilogHDL设计方法简介算法实现 组合逻辑设计要点 VerilogHDL设计方法简介算法实现 verilogHDL代码风格 涉及的因素 速度和面积 功耗 涉及的技术 逻辑复制和复用计数 并行和流水线计数 同步和一、异步单元处理技术 VerilogHDL设计方法简介算法实现 有关Verilog HDL的几个重要基本概念 综合: 通过工具把用V

12、erilog HDL描述的模块自动转换为用门 级电路网表表示的模块的过程。 寄存器传输级Verilog HDL模块: 也可称为RTL(Verilog)HDL模块。它是符合特定标准 和风格的描述状态转移和变化的 Verilog HDL模块。能 用综合器把它转换为门级逻辑。 Verilog HDL测试模块: 用Verilog HDL描述的模块,可以用来产生测试信号序 列并可以接收被测试模块的信号,用于验证所设计的模 块是否能正常运行,往往不可综合成具体门级电路。 VerilogHDL设计方法简介算法实现 有关Verilog HDL的几个重要基本概念 Verilog HDL顶层(测试)模块: 同上。

13、 布局布线: 把用综合器自动生成的门级网表(EDIF)通过 运行一个自动操作的布局布线工具,使其与具 体的某种FPGA或某种ASIC工艺库器件对应起来, 并加以连接的过程。 Verilog HDL后仿真测试模块: 同上,但被测试的模块至少是一个门级描述的或 用具体FPGA(ASIC)库器件(带时间延迟信息)描 述的结构型Verilog HDL 模块。 VerilogHDL设计方法简介算法实现 Verilog模块的种类行为模块 VerilogHDL设计方法简介算法实现 Verilog模块的种类可综合模块 VerilogHDL设计方法简介算法实现 为什么Verilog能支持大型设计 Verilog

14、HDL设计方法简介算法实现 设计项目举例myproject 可综合部分 (我们想要设计的逻辑电路部 分): mk_1.v, mk_2.v, mk_3.v, .mk_8.v mk_11.v, mk_12.v , mk_13.v. mk_21.v, mk_22.v, mk_23.v . . mk_81.v, mk_82.v, mk_83.v . VerilogHDL设计方法简介算法实现 设计项目举例myproject 外围部分: ww_1.v, ww_2.v, ww_3.v, ww_4.v . 激励部分: SG_1.v, SG_2.v . 顶层测试模块: 包括可综合部分、外围部分、激励部分, 还包

15、括测试步骤和输出文件等。 VerilogHDL设计方法简介算法实现 Myproject外围部分 这部分逻辑不用综合成电路,但为了验证我们的 设计,其行为必须与真实器件完全一致。 下面我们介绍一个简化的RAM模块,我们所设计 的电路用到了该RAM, 但电路结构中并不包括这 个RAM。 VerilogHDL设计方法简介算法实现 RAM 的 Verilog 模块 timescale 1ns/1ns module ram(data, addr, ena, read, write) ; inout 7:0 data; input 9:0 addr; input ena, read,write; reg

16、7:0 ram8 hff : 0; assign # 20 data = (read always (posedge write) begin #10 ramaddr = data; end endmodule VerilogHDL设计方法简介算法实现 激励源的 Verilog 模块 timescale 1ns/1ns define timeslice 200 module sigs (ack,clock,read,write,addr,data); input ack; output clock, read, write; output 15:0 addr; inout 7:0 data;

17、reg clock, read, write; reg 15:0 addr; reg w_r ; /used to record if read or write reg 7:0 DataToRam; /used to stack the data VerilogHDL设计方法简介算法实现 激励源的 Verilog 模块 assign #10 data = (w_r)? hzz : DataToRam; initial begin clock = 0; w_r = 0; DataToRam=0;addr = 16 h 0000 ; end always # ( timeslice/2) clo

18、ck = clock; VerilogHDL设计方法简介算法实现 激励源的 Verilog 模块 always (posedge ack) if (w_r = 0) begin #(5*timeslice) write = 1; # (timeslice) write = 0; end else begin # (5 * timeslice) read = 1; # (timeslice) read = 0; end always (posedge ack) begin DataToRam = DataToRam + 2; addr = addr + 1; end endmodule VerilogHDL设计方法简介算法实现 激励源的 Verilog 模块 。 VerilogHDL设计方法简介算法实现 顶层测试 Verilog 模块 timescale 1ns/1ns include 可综合模块.v . . . . include 外围电路.v . . . . include 激励信号.v . . . . module top; wire 连线定义 . . . . Reg 初试化块中寄存器定义 . . . . initial begin 定义波形记录、输入数据文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论