资源描述:
《使用verilog hdl 硬件描述语言设计复杂数字逻辑》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用VerilogHDL硬件描述语言设计复杂数字逻辑第一课一.概述1.本课程的内容学习使用VerilogHDL进行复杂数字逻辑的设计2.什么是HDL(HardwareDescriptionLanguage)是一种用形式化的方法来描述数字电路和设计数字逻辑系统的语言。3.用HDL来设计数字逻辑的一般方法传统方法:-查用器件手册-选用合适的微处理器和电路芯片-设计面包板和线路板-调试-定型现代的设计方法:-选用合适的EDA仿真工具;-选用合适电路图输入和HDL编辑工具;-逐个编写可综合HDL模块;-逐个编写HDL测试模块;-逐个
2、做HDL电路逻辑访真;-编写HDL总测试模块;-做系统电路逻辑总仿真;-定型,FPGA编码或ASIC投片4.现代设计方法的优点•电路的逻辑功能容易理解;•便于计算机对逻辑进行分析处理;•把逻辑设计与具体电路的实现分成两个独立的阶段来操作;•逻辑设计与实现的工艺无关;•逻辑设计的资源积累可以重复利用;•可以由多人共同更好更快地设计非常复杂的逻辑电路(几十万门以上的逻辑系统)。5.VerilogHDL起源发展特点6.其他的硬件描述语言VHDL[VHSIC(VeryHighSpeedIntegratedCircuit)Hardwa
3、reDescriptionLanguage]VHDL和Verilog风格比较(例clock_16.v.vhd)7.本课的目标a.能够使用verilogHDL设计复杂数字逻辑b.能够通过对设计进行仿真以验证设计的正确性c.了解大规模可编程逻辑器件(CPLDFPGA)的设计过程(设计,仿真,管脚分配,逻辑下载)1.一些概念a.综合(synthesize)抽象的描述——〉具体电路形式b.可综合和不可综合c.抽象级别(行为级,RTL级,门级)行为级:技术指标和算法的Verilog描述RTL级:逻辑功能的Verilog描述门级:逻辑结
4、构的Verilog描述图例:synplifyadder.vd.布局布线e.仿真(simulation)模型,前仿真,综合后仿真,时序仿真(后仿真)2.工具软件ftp://211.71.11.110/pub/software/edaftp://202.112.141.3/!软件/电子工程softwaremodelsim5.5be5.6synplify6.247.07.1maxplussII10.13.硬件可编程逻辑器件(PLD)GAL通用可编程逻辑CPLD复杂可编程逻辑器件FPGA现场可编程门阵列ASIC[Applicatio
5、nSpecificIC]可编程逻辑器件与ASIC相比,设计周期短,设计制造成本低,可重复编程(在线可编程),广泛应用于产品原型机设计和小批量生产(5000件以下)二.语法基础(教材第3章)1.程序结构moduleadder(cout,sum,a,b,cin);//模块名,输入输出信号列表input[2:0]a,b;//输入输出信号定义inputcin;outputcout;output[2:0]sum;//功能描述assign{cout,sum}=a+b+cin;endmodule----------------------
6、-------------------------------modulet_adder;reg[2:0]a1,b1;regcin1;wirecout1;wire[2:0]sum1;adderu1(cout1,sum1,a1,b1,cin1);//adder模块调用initialbegina1=0;b1=0;cin1=0;#100a1=1;#100b1=2;#100cin1=1;#1000a1=2;b1=3;cin1=0;$stop;endendmodulea.程序基本单位是moduleb.module之间可以象元件一样调用
7、(使用)c.一个模块以module开始endmodule结束d.module的语法e.端口定义(inputoutputinout)f.功能单元assignalwaysmodulemap(模块调用)1.基本运算符算术运算符(+-*/)逻辑运算符(&&
8、
9、)位运算符(~
10、&^)移位运算符(<<>>)条件运算符(?:)位拼接运算符({})a={a[0],a[7:1]}2.常量表示(P22)a.二进制24’b0000_1111_00018’b11110000b.十进制8’d50,16’d65535c.八进制8’o10d.十六进制16
11、’hff<位宽><进制><数字><进制><数字>缺省宽度(具体机器系统决定[32])<数字>缺省十进制x和z值4’b10x016’dz3.基本数据类型reg,wire,integer5.变量a.网络数据类型(nettype)网络类型的变量不能储存值,用来表示电路单元之间的物理连接;具体类型