使用VerilogHDL硬件描述语言设计复杂数字逻辑.doc_第1页
使用VerilogHDL硬件描述语言设计复杂数字逻辑.doc_第2页
使用VerilogHDL硬件描述语言设计复杂数字逻辑.doc_第3页
使用VerilogHDL硬件描述语言设计复杂数字逻辑.doc_第4页
使用VerilogHDL硬件描述语言设计复杂数字逻辑.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

使用Verilog HDL 硬件描述语言设计复杂数字逻辑第一课一概述1 本课程的内容学习使用Verilog HDL 进行复杂数字逻辑的设计2 什么是HDL(Hardware Description Language)是一种用形式化的方法来描述数字电路和设计数字逻辑系统的语言。3 用HDL来设计数字逻辑的一般方法传统方法:- 查用器件手册 - 选用合适的微处理器和电路芯片 - 设计面包板和线路板 - 调试 - 定型现代的设计方法:- 选用合适的 EDA仿真工具; - 选用合适电路图输入和HDL编辑工具; - 逐个编写可综合HDL模块; - 逐个编写HDL测试模块; - 逐个做HDL 电路逻辑访真; - 编写HDL总测试模块; - 做系统电路逻辑总仿真;- 定型, FPGA编码或ASIC投片4 现代设计方法的优点电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂的逻辑电路(几十万门以上的逻辑系统)。5 Verilog HDL起源发展特点6 其他的硬件描述语言VHDL VHSIC(Very High Speed Integrated Circuit) Hardware Description LanguageVHDL和Verilog 风格比较(例clock_16.v .vhd)7 本课的目标a.能够使用verilog HDL 设计复杂数字逻辑b.能够通过对设计进行仿真以验证设计的正确性c.了解大规模可编程逻辑器件(CPLD FPGA)的设计过程(设计,仿真,管脚分配,逻辑下载)8 一些概念a 综合(synthesize)抽象的描述具体电路形式b 可综合和不可综合c 抽象级别(行为级,RTL级,门级)行为级:技术指标和算法的Verilog描述RTL级:逻辑功能的Verilog描述门级: 逻辑结构的Verilog描述图例:synplify adder.vd布局布线e仿真(simulation)模型,前仿真,综合后仿真,时序仿真(后仿真)9 工具软件10/pub/software/eda/!软件/电子工程softwaremodelsim 5.5b e 5.6synplify 6.24 7.0 7.1maxpluss II 10.110 硬件可编程逻辑器件(PLD)GAL 通用可编程逻辑CPLD 复杂可编程逻辑器件FPGA 现场可编程门阵列ASIC Application Specific IC可编程逻辑器件与ASIC相比,设计周期短,设计制造成本低,可重复编程(在线可编程),广泛应用于产品原型机设计和小批量生产(5000件以下)二语法基础(教材第3章)1 程序结构module adder(cout,sum,a,b,cin);/模块名,输入输出信号列表input2:0a,b;/输入输出信号定义input cin;outputcout;output 2:0 sum;/功能描述assigncout,sum=a+b+cin;endmodule-module t_adder;reg 2:0 a1,b1;reg cin1;wire cout1;wire 2:0 sum1;adder u1(cout1,sum1,a1,b1,cin1);/adder模块调用initial begina1=0;b1=0;cin1=0;# 100 a1=1;# 100 b1=2;# 100 cin1=1;# 1000 a1=2; b1=3; cin1=0;$stop;endendmodulea. 程序基本单位是moduleb. module之间可以象元件一样调用(使用)c. 一个模块以module 开始 endmodule结束d. module的语法e. 端口定义(input output inout)f功能单元assign always module map(模块调用)2 基本运算符算术运算符(+ - * /)逻辑运算符(& |)位运算符(| & )移位运算符( )条件运算符( ? :)位拼接运算符( ) a=a0, a7:13 常量表示(P22) a. 二进制 24b0000_1111_0001 8b11110000b. 十进制 8d50, 16d65535c. 八进制 8o10d. 十六进制 16hff 缺省宽度(具体机器系统决定32) 缺省十进制x和z值4b10x016dz4 基本数据类型reg, wire , integer5. 变量a. 网络数据类型(net type)网络类型的变量不能储存值,用来表示电路单元之间的物理连接;具体类型有:wire , input , output ,inoutbreg型寄存器类型是数据储存单元的抽象。通过赋值语句改变reg型变量的值,与改变触发器储存的值相当。Reg型的初始值为不定值x。cmemory型用来描述RAM,ROM,FIFO等电路单元内的数据储存结构reg n-1:0 mem1m-1:0;reg 7:0 mem2255:0;d变量的定义reg n-1:0 name1,name2;reg name3;reg 7:4 name4;reg 3:0 name5;wiren-1:0 name6,name7;inputn-1:0 name8;output3:0 name9;inout7:4 name10;6. 基本语句a. assign 连续赋值语句assign a=b&c;assign a=(rst)?1:(latch)?b:a);b. initial 初始化结构块使用initial结构块来在仿真开始时对各变量进行初始化,或直接产生仿真波形initial begin.语句s;endinitial内部的语句只会执行一次c. always always 结构块在时序控制条件的触发下不断的重复执行always #100 clk=clk;always #100/直接延时构成时序控制条件begina1=a1+1;b1=b1+1;cin1=cin1;endalways (posedge rst or posedge clk )/敏感信号动作构成时序控制条件1beginif(rst)counter=0;elsecounter=counter+1;endalways (a or b or cin) count,sum=a+b+cin;c. 模块调用语句把一个写好的module 当作一个元器件使用module submodule(in1,in2,out1,out2);input in1,in2;output out1,out2;.endmodulemodule topmodule(.)./signal1-8为本级模块中的信号/in1 ,in2 ,out1,out2为被调用模块的输入输出端口名/u1,u2为实例名/submodule 为被调用模块名(module name)submodule u1(.in1(signal1), .in2(signal2), .out1(signal3), .out2(signal4);submodule u2(.in1(signal5), .in2(signal6), .out1(signal7), .out2(signal8);/submodule u1(signal1,signal2,signal3,signal4);.endmodule模块调用时应注意:1 口宽度与信号宽度必须匹配2 与输出端口连接的信号类型必须是网络类型(net type)(当然不能是input)3 与输入端口连接的信号类型可以是net type 或 reg 型 根据具体情况而定)7case 语句(casex, casez) , if_else条件语句,循环语句(for ,while)等语句(教材3948)只能出现在initial 或 always等块结构中.8. task 和 function结构 p51p549. 可综合风格Verilog HDL的例子例1 指令译码电路(书p132 7.2.2)例2 比较器 (书p134 7.2.4)例3 3-8译码器 (书p134 5)例4 多路器(数据选择器)(P136 7)例5 双向三态驱动器(P137 10)例6 带异步复位和异步置位的锁存器(自编)例7 移位寄存器(P138 5)例8 8位计数器设计(P139 6)例9 099 BCD计数器(自编)10. 阻塞赋值和非阻塞赋值(7.2.4)always (posedge clk)beginq1=d;q2=q1;q3=q2;end正确结果always (posedge clk)beginq1=d;q2=q1;q3=q2;end错误的综合结果11.同步有

温馨提示

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

评论

0/150

提交评论