版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-1 1 1页页页电子教案第4章 层次结构EDA设计技术设计技术VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-2 2 2页页页电子教案 4.1系统及结构要素系统是一个或多个模块的集合,明确而完备地按照一定的层次结构,利用硬件描述语言描述模块的相互连接关系,在激励信号的作用下获得输出响应。结构要素是构成系统的基本单位,包括模块、端口、导线。模块与模块之间通过端口和导线连接,而端口与端口之间通过导线连接。系统可以根据结构需要,由一个模块构成单模块系统,或由多个模块
2、组成多模块系统。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-3 3 3页页页电子教案 单模块系统与多模块系统结构VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-4 4 4页页页电子教案四级抽象 按不同抽象级别将系统划分为行为级或算法级、数据流级、门级和开关级共四级抽象。 对各抽象级别的实施过程又形成两种基本设计方法:自顶向下的设计方法和自底向上的设计方法。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-5 5 5页页页电子教案4.2设计方法自顶向下的设计方法:
3、首先确定系统的顶层模块,再将顶层模块按需要分解为子模块,从算法级开始依次向下逐层分解,直到不能再细分的开关级原语。每一层的子模块由上一层模块进行装配、验证,直至系统级顶层。自底向上的设计方法则采用搭积木的方式,先建立最底层模块,将子模块组合成上一层诸模块,直到顶层模块。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-6 6 6页页页电子教案自顶向下的设计方法自顶向下的设计方法VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-7 7 7页页页电子教案自底向上的设计方法VerilogHDL与与CPLD|FPGA设
4、计设计淮南师范学院电子工程学院第第第3-3-3-8 8 8页页页电子教案例:8位全加法器设计分析8位全加器实现输入被加数a、加数b、进位位cin,输出求和结果sum和进位位cout,顶层模块adder_8实现求和运算。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-9 9 9页页页电子教案算法解析过程(1)先求a、b低四位的和sum3:0、中间进位位cin_4: sum3:0 = a3:0b3:0cin_4;cout_4 = a3:0&b3:0&cin_4;(2)再求a、b高四位与中间进位位cout_4的和sum7:4、进位输出cou
5、t:sum7:4 = a7:4b7:4cout_4;cout = a7:4&b7:4&cout_4;VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-101010页页页电子教案算法级模块分析VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-111111页页页电子教案4位全加器的模型结构分解数据流级解析:(1)先求a0、b0的和sum0、中间进位位cin1:sum0 = a0b0cin;cin1 = a0&b0&cin;(2)之后求a1、b1与中间进位位cin1的和sum1、进位输
6、出cin2:sum1 = a1b1cin1;cin2 = a1&b1&cin1;VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-121212页页页电子教案4位全加器的模型结构分解(3)之后求a2、b2与中间进位位cin2的和sum2、进位输出cin3:sum2 = a2b2cin2;cin3 = a2&b2&cin2;(4)最后求a3、b3与中间进位位cin3的和sum3、进位输出cout:sum3 = a3b3cin3;cout = a3&b3&cin3;VerilogHDL与与CPLD|FPGA设计
7、设计淮南师范学院电子工程学院第第第3-3-3-131313页页页电子教案4位全加法器的数据流结构VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-141414页页页电子教案门级解析过程(1)先求被加数a、加数b的半加结果w1及半进位结果w2; w1 = ab;w2 = a&b;(2)再求半加结果w1、进位位cin的半加和sum sum = cinw1;(3)最后求半进位结果w2、半进位结果w3的或运算,得全加器的进位输出。 VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-151515页页页电子教案1位
8、全加法器的门级结构VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-161616页页页电子教案门级模块分析结果VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-171717页页页电子教案8位全加器的层次模块分析结果VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-181818页页页电子教案系统的Verilog HDL描述(1)顶层模块module Adder_8(sum,c_out,a,b,c_in); output 7:0 sum; output c_out; inp
9、ut 7:0 a,b; input c_in; wire c_in1; Adder_4 M1(sum3:0,c_in1,a3:0,b3:0,c_in); Adder_4 M2(sum7:4,c_out,a7:4,b7:4,c_in1);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-191919页页页电子教案算法级模块module Adder_4(sum,c_out,a,b,c_in); output 3:0 sum; output c_out; input 3:0 a,b; input c_in; wire c_in1, c_in
10、2, c_in3; Adder_full M1(sum0,c_in1,a0,b0,c_in); Adder_full M2(sum1,c_in2,a1,b1,c_in1); Adder_full M3(sum2,c_in3,a2,b2,c_in2); Adder_full M4(sum3,c_out,a3,b3,c_in3);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-202020页页页电子教案数据流级模块module Adder_full(sum,c_out,a,b,c_in); output sum; output c_ou
11、t; input a,b; input c_in; wire w1,w2,w3,w4,w5; Adder_half M1(w1,w2,a,b); Adder_half M2(sum,w3,c_in, w1); and M3(w4,c_in,a), M4(w5,c_in,b); or M5(c_out,w2,w4,w5);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-212121页页页电子教案门级模块module Adder_half(sum,c_out,a,b); output sum,c_out; input a,b; xor
12、M1(sum,a,b); and M2(c_out,a,b);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-222222页页页电子教案4.3模块及模块抽象模块是构成系统层次结构的基本单位,是最小设计单元或低级设计单位的集合。一般来说,多个模块组合在一起,通过输入端口和输出端口与上一层模块连接,实现上一层模块所需的、独立而完备的功能,而上一层的设计工作不必关心该模块的内部结构。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-232323页页页电子教案4.3.1模块模块的申明始于关键词mod
13、ule,终于关键词endmodule,紧随module之后,是模块的确认符和端口申明,其基本形式如下:module(); endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-242424页页页电子教案例:申明算法级的8位全加器模块Adder_8module Adder_8(sum,c_out,a,b,c_in); output 7:0 sum; output c_out; input 7:0 a,b; input c_in; endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-2
14、52525页页页电子教案不允许使用嵌套结构申明模块module (); module (); endmodule endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-262626页页页电子教案4.3.2 模块抽象可以将每个模块的内部结构抽象为行为或算法级、数据流级、门级和开关级四个级别之一。模块所在的抽象级别与模块的行为无关,对于外部环境来说,模块内部处于隐藏状态,而模块在不同外部环境下的行为是一致的。目的:模块的任何变化对所处使用环境都没有影响VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-
15、272727页页页电子教案行为或算法级是Verilog HDL规定的最高抽象级别,处于该抽象级别的模块仅与设计所需的算法有关,与硬件实现条件无关。行为级或算法级抽象行为级或算法级抽象VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-282828页页页电子教案数据流级按规定的数据流设计模块,设计者需要掌握设计工作中对硬件寄存器和数据处理的先验知识。数据流级抽象数据流级抽象VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-292929页页页电子教案按逻辑门的互连关系设计模块,门级抽象的模块设计类似于按照逻辑图描述模
16、块。门级抽象门级抽象VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-303030页页页电子教案开关级抽象是Verilog HDL的最低级抽象,该级按照开关、存储节点及其互连关系设计模块,要求设计者具有开关级相关的知识。开关级抽象开关级抽象VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-313131页页页电子教案寄存器传输级此外,还有EDA设计领域经常使用的一种抽象级别:寄存器传输级(Register Transfer Level,简称RTL级),即可以被逻辑综合工具综合的、以行为描述和数据流描述设计模块的级
17、别。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-323232页页页电子教案4.4 例化模块、门级原语、开关级原语、用户定义原语是一种可创建实际对象的模板,利用模板创建唯一对象的过程称为例化。模板被例化之后,模板的属性和内部结构被对象继承,而且每个对象都有自己的名称、变量、参数、输入输出端口等。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-333333页页页电子教案4.4.1 模块例化例:顶层模块分解为两个4位全加器Adder_4,采用直接按顺序连接的方式将该模块分别例化为M1和M2:Adder_4 M
18、1(sum3:0,c_in1,a3:0,b3:0,c_in);Adder_4 M2(sum7:4,c_out,a7:4,b7:4,c_in1);结果是Adder_4的所有属性被M1和M2继承,而不改变模块的任何结构,例化是跨接在不同抽象级别之间的,或跨层的,并由此组建例4-1的顶层模块:VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-343434页页页电子教案顶层模块module Adder_8(sum,c_out,a,b,c_in); output 7:0 sum; output c_out; input 7:0 a,b; input c_in;
19、wire c_in1; Adder_4 M1(sum3:0,c_in1,a3:0,b3:0,c_in); Adder_4 M2(sum7:4,c_out,a7:4,b7:4,c_in1);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-353535页页页电子教案模块端口的连接关系在同一模块被例化的同名端口,按顺序连接、在同一模块被例化的同名端口,表示该对口是直接互联的。M1模块的进位输出c_in1,M2端口的进位输入c_in1,隐含表示4位全加器的进位位级联;此外,M1的sum3:0和M2的sum7:6也隐含了全加器的求和输出。Ve
20、rilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-363636页页页电子教案算法级的4位全加器module Adder_4(sum,c_out,a,b,c_in); output 3:0 sum; output c_out; input 3:0 a,b; input c_in; wire c_in1, c_in2, c_in3; Adder_full M1(sum0,c_in1,a0,b0,c_in); Adder_full M2(sum1,c_in2,a1,b1,c_in1); Adder_full M3(sum2,c_in3,a2,b2,c_in2);
21、 Adder_full M4(sum3,c_out,a3,b3,c_in3);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-373737页页页电子教案不同抽象级别的模块命名由于模块在环境中隐藏了内部结构,因此Adder_4模块中例化的例化模块名M1、M2与Adder_full例化模块名M1、M2属于不同的对象前者的模板是Adder_4,而后者的模板是Adder_full,分属于不同抽象级别的模块命名空间VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-383838页页页电子教案简化表达 同
22、类型的例化可以简化表达,例如对于上述4位加法器模块:module Adder_4(sum,c_out,a,b,c_in); Adder_full M1(sum0,c_in1,a0,b0,c_in); M2(sum1,c_in2,a1,b1,c_in1); M3(sum2,c_in3,a2,b2,c_in2); M4(sum3,c_out,a3,b3,c_in3);endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-393939页页页电子教案4.4.2原语例化原语例化包括对门级原语、开关级原语和用户定义原语的例化以Verilog HDL规
23、定的门级原语和开关级原语为例化起始的关键字用户定义原语以原语名开始例化分别申明原语例化名、输入输出端口、强度及延时参数等目的是以门级互联的描述方式构建上一级更复杂的模块VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-404040页页页电子教案多输入门and nand or nor xor xnor 01xz 01xz 01xz 01xz 01xz 01xz0000001111001xx010 xx001xx010 xx101xx110 xx1111110000110 xx101xxx0 xxxx1xxxxx1xxxx0 xxxxxxxxxxxxz0
24、xxxz1xxxzx1xxzx0 xxzxxxxzxxxx多输出门拉电阻三态门bufnotpulluppulldownbufif1 notif1 bufif0 notif0 10 01xz 01xz 01xz 01xz00 01 0z0LL01zHH00zLL0z1HH11 10 1z1HH10zLL11zHH1z0LLxx xx xzxxxxxzxxxxzxxxzxxxzx zx zzxxxzxzxxzxzxxzzxxxMOS开关双向开关pmos/rpmosnmos/rnmoscmosrcmostran/rtran tranif1/rtranif1 tranif0/rtranif0 01xz
25、 01xzpmos和nmos的组合rpmos和rnmos的组合ABBAC=1时,ABC=0时,BAC=1时,BAC=0时,AB00zLL0z0LL11zHH1z1HHxxzxxxxzxxzzzzzzzzzzVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-414141页页页电子教案例化的基本形式primitive drive_strength delay instance_namerange(port_connection_list);primitive为原语类型,instance_name为例化名。例化原语必须指定原语类型,并分配唯一的例化名。Ver
26、ilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-424242页页页电子教案例化的基本形式 tranif0 (5,3) T1(Y0,X0,X1); /例化tranif0原语,例化名为T1 tranif0 (5,3) T2(Y0,X0,X1); /例化tranif0原语,例化名为T2 and A1(Y0,X0,X1); /例化and原语,例化名为A1 or Z(Y0,X0,X1); /例化or原语,例化名为Z buf B1 (out1, out2, in); /例化buf原语,例化名为B1 bufif1 BF1 (outw, inw, controlw); /
27、例化bufif1原语,例化名为BF1 pmos P1 (out, data, control); /例化pmos原语,例化名为P1 tranif1 T1 (inout1,inout2,control); /例化tranif1原语,例化名为T1VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-434343页页页电子教案range range是重复例化时采用归纳表达例化范围的常数表达式lhi:rhi,lhi为左侧索引号,rhi为右侧索引号,可例化 个同类型原语。范围指定是可选项,不限制lhi和rhi的排列顺序。 例如下述两条语句等价:and #3 GA0:
28、3(c,a,b); /例化and原语,范围GA0、GA1、GA2、GA3and #3 GA3:0(c,a,b); /例化and原语,范围GA0、GA1、GA2、GA3 但不允许同名例化语句的并列申明: and #3 GA1:0(c,a,b), GA3:2(c,a,b); /非法申明VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-444444页页页电子教案port_connection_list port_connection_list是端口连接列表,形式为(port0,port1,portn)的完备列表,第一个端口port0为输出端口或双向端口,之后
29、是输入端口。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-454545页页页电子教案port_connection_listmodule Nonequal(Z,A,B); input 0:3A,B; output Z; wire 0:3w; xor X0:3(w,A,B); /xor原语的端口连接列表(w,A,B) or G0(Z,w); /or原语的端口连接列表(Z,w)endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-464646页页页电子教案drive_strength drive_
30、strength为驱动强度,可选择三种指定形式: (stength1,strength0)、 (stength1) (strength0) stength1表示逻辑为1的驱动强度,可选择supply1、strong1、pull1、weak1和highz1,当驱动强度设置为highz1时,逻辑门输出1的地方变为高阻态输出; stength0表示逻辑为0的驱动强度,supply0、strong0、pull0、weak0和highz0,当设置为highz0时,逻辑门输出0的地方变为高阻态输出。不允许 (highz0, highz1)和(highz1, highz0)的强度指定。VerilogHDL与
31、与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-474747页页页电子教案drive_strength 多输入门、多输出门、三态门三种逻辑门原语以(stength1,strength0)指定驱动强度,默认为strong0和strong1。例如, and (supply1,strong0) A1(out1,in1,in2); /指定A1的驱动强度(supply1,strong0) nor (highz1,strong0) N1(out1,in1,in2); /指定N1的驱动强度(highz1,strong0), nor逻辑门输出1变为输出逻辑z 上拉电阻pullup只能选择
32、supply1,下拉电阻pulldown只能选择supply0: pullup (supply1) A1(D0); pulldown (supply0) B1(D1);VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-484848页页页电子教案delaydelay指定输入至输出的信号延时,可以选择设置上升延时、下降延时、转至x延时和截止延时,而且可单独设定0个、1个、2个或3个延时值,表达形式为: 缺省,默认延时值为0 #(d),指定一元延时 #(d1,d2),指定两元延时 #(d1,d2,d3),指定三元延时 #(min:typ:max),指定以最小
33、值:典型值:最大值的延时指定方式多输入门和多输出门最多只能指定两个延时值,上拉电阻和下拉电阻不指定延时。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-494949页页页电子教案延时指定选择无延时无延时一元延时一元延时(d)二元延时二元延时(d1,d2)三元延时三元延时(d1,d2,d3)上升延时0dd1d1下降延时0dd2d2转至x0d(d1,d2)中最小 (d1,d2,d3)中最小截止延时0d(d1,d2)中最小d3VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-505050页页页电子教案延时指定选择
34、例如:and A1(Y0,X0,X1); /默认延时值为0and #(5) A1(Y0,X0,X1); /上升延时、下降延时、转至x延时和截止延时都是5个时间单位and #(5,3) A1(Y0,X0,X1); /上升延时是5个时间单位,下降延时是3个时间单位,转至x延时和截止延时是(5,3)的最小值,即3个时间单位tranif0 #(5,3,4) A1(Y0,X0,X1); /上升延时是5个时间单位,下降延时是3个时间单位,转至x延时是(5,3,4)的最小值,即3个时间单位,截止延时是4个时间单位VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-51
35、5151页页页电子教案门级原语或开关级原语在模块内例化 例如下述半加器模块:module Adder_half(sum,c_out,a,b); output sum,c_out; input a,b; xor M1(sum,a,b); /例化异或门原语,求半加和 and M2(c_out,a,b); /例化与门原语,求半加进位位endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-525252页页页电子教案不同抽象级别的混合例化 例如对1位全加器模块包含行为级例化和门级例化:module Adder_full(sum,c_out,a,b,
36、c_in); output sum; output c_out; input a,b; input c_in; wire w1,w2,w3; Adder_half M1(w1,w2,a,b); /例化行为级模块,半加器 Adder_half M2(sum,w3,c_in, w1); /例化行为级模块,半加器 or M3(c_out,w2,w3); /例化门级模块,求进位位endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-535353页页页电子教案用户定义原语的例化用户定义原语的例化与门级原语、开关级原语的例化类似。例如下述例化D型边沿
37、触发器d_edge_ff,例化名为d_inst,端口名例化:d_edge_ff d_inst (.q(q), .clock(clock), .data(data);VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-545454页页页电子教案用户定义原语的例化module flip; reg clock, data; parameter p1 = 10; parameter p2 = 33; parameter p3 = 12; d_edge_ff #p3 d_inst (.q(q), .clock(clock), .data(data); /例化用户定
38、义原语 initial begin data = 1; clock = 1; #(20 * p1) $finish; end always #p1 clock = clock; always #p2 data = data;endmoduleVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-555555页页页电子教案4.4.3 生成例化与等价验证等价验证系统设计被解析之后、开始仿真之前,必须设计一个经例化的模块与系统设计模块进行连接,使例化模块与系统模块之间通信,利用例化模块验证系统设计环境的等价性,称为等价验证,等价验证所需的例化模块设计称为生成例化
39、。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-565656页页页电子教案生成例化与解析系统的关系示意图VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-575757页页页电子教案生成例化生成例化必须界定在例化模块范围内,而且要始于关键词generate,终于关键词endgenerate生成语句允许申明变量、函数和任务,生成例化由一个或多个模块、用户定义原语、Verilog门级原语、连续赋值语句、过程赋值语句组成,可进行条件生成申明和条件例化,允许生成多变量和多变量例化,生成例化只能有唯一的例化名,可以按层
40、次化引用。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-585858页页页电子教案4.4.3.2 循环生成例化生成语句允许使用循环语句生成、条件语句生成和分支语句生成,循环语句生成例化采用for语句构成循环语句,循环索引或循环次数由生成变量genvar申明,但是不能嵌套使用genvar变量,对genvar变量的第一次申明语句中不允许对该变量初始化,须在生成语句块内完成。genvar i;generate for (i=0; i Size_bus; i=i+1)VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3
41、-595959页页页电子教案采用循环语句生成例化语句块genvar i; generate for (i=0; i Size_bus; i=i+1) /循环语句生成 begin:GIS /生成语句块 assign Ci = Ai & B i; /生成语句 end endgenerateVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-606060页页页电子教案采用循环语句生成门级原语例化generate for(i=0; iSIZE; i=i+1) begin:GIM1 wire t1, t2, t3;/申明生成网络类型 xor gate1 (
42、 t1, ai, bi); /生成例化门级原语 xor gate2 ( sumi, t1, ci); and gate3 ( t2, ai, bi); and gate4 ( t3, t1, ci); or gate5 ( ci+1, t2, t3); endendgenerateVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-616161页页页电子教案采用循环语句进行生成例化采用循环语句对行为级或系统级进行生成例化,设解析系统内有四个模块M1、M2、M3和M4需要等价验证,分别生成例化为N1、N2、N3和N4,生成范围由四个生成变量i、j、k和m控
43、制。VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-626262页页页电子教案循环语句进行生成例化的例化范围VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-636363页页页电子教案parameter SIZE = 2;genvar i, j, k, m;generate for (i=0; iSIZE+1; i=i+1) begin:B1 / 生成范围B1i M1 N1(); / 生成例化B1i.N1i for (j=0; jSIZE; j=j+1) begin:B2 / 生成范围B1i.B2j M2 N
44、2(); / 生成例化B1i.B2j.N2 for (k=0; k0) for (m=0; mSIZE; m=m+1) begin:B4 /生成范围B1i.B4m M4 N4(); /生成例化B1i.B4m.N4 end endendgenerate采用循环语句例化VerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-646464页页页电子教案条件生成例化条件语句生成例化采用if-else-if条件语句构成条件表达式,生成模块、用户定义原语、门级原语、连续赋值、过程赋值语句块,实现等价验证模块的设计。VerilogHDL与与CPLD|FPGA设计设计淮南师
45、范学院电子工程学院第第第3-3-3-656565页页页电子教案4.4.3.3条件生成例化generate if(Pdelay1 = 3) &(Pdelay1 = 7) spi_slave #( Pdelay1, Pdelay2) u1(.rst(rst),.ss(ss0), .sclk(sclk), .mosi(mosi), .miso(miso); else spi_master #( Pdelay1, Pdelay2) u1(.rst(rst), .ss(ss0), .sclk(sclk), .mosi(mosi), .miso(miso);endgenerateVerilogHD
46、L与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-666666页页页电子教案4.4.3.4分支生成例化 分支语句生成例化采用case-endcase分支语句构成条件表达式,表达方法与条件语句类似。generate case (PCommand) 1: RXD_Buffer x1(Rbuffer,data); / PCommand=1,例化接收缓冲区 2: TXD_Buffer x1(Tbuffer,data); / PCommand=2,例化发送缓冲区 default: Clear_buffer #(WIDTH) x1(Rbuffer,inidata); /清除缓冲区 endcase endgenerateVerilogHDL与与CPLD|FPGA设计设计淮南师范学院电子工程学院第第第3-3-3-676767页页页电子教案4.4.3.5 参数化生成例化 在生成范围内或层次化结构的生成范围内使用defparam语句定义的参数,只能该范围使用。module AtoB (C,B, A); parameter Size_bus = 16; / 生成参数 output Size_b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026宁夏宝丰储能负极厂招聘470人考试参考试题及答案解析
- 2026南平市建阳区嘉禾公路建设投资有限公司招聘驾驶员1人考试参考试题及答案解析
- 2026年中国石油规划总院校园招聘笔试参考题库及答案解析
- 2025-2026学年毫米厘米分米米教学设计
- 瓦斯管道施工技术方案
- 加油站加油机基础及安装方案
- 2026上海浦东新区公办学校教师招聘1053人(第二批次)考试备考试题及答案解析
- 2026年保山市龙陵县教体系统事业单位校园招聘工作人员(8人)考试备考试题及答案解析
- 2026年新疆移动校园招聘笔试备考试题及答案解析
- 管道保护措施施工技术方案
- 2026河南平顶山发展投资控股集团校园招聘备考题库含完整答案详解(全优)
- 2024-2025学年成都市金牛区初三二诊语文试题(含答案)
- 勾股定理的逆定理(人教版八年级数学下册课件)
- GB/T 22751-2008台球桌
- GA/T 148-2019法医学病理检材的提取、固定、取材及保存规范
- FZ/T 01137-2016纺织品荧光增白剂的测定
- 《山东省房屋修缮工程消耗量定额》建筑分册交底资料
- 宝钢冷轧带钢生产
- 保洁培训手册电梯保养
- 工装工具设备管理办法
- 家庭食品安全知识课件
评论
0/150
提交评论