版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.6
用VerilogHDL描述组合逻辑电路4.6.1
组合逻辑电路的门级建模4.6.2
组合逻辑电路的数据流建模4.6.3
组合逻辑电路的行为级建模4.6
用VerilogHDL描述组合逻辑电路用VerilogHDL描述组合逻辑电路有三种不同抽象级别:组合逻辑电路的门级描述、组合逻辑电路的数据流描述、组合逻辑电路的行为级描述。VerilogHDL描述的电路就是该电路的VerilogHDL模型。行为描述方式:
一般使用下述语句描述,可以对组合、时序逻辑电路建模。
1)initial语句
2)always语句数据流描述方式:
一般使用assign语句描述,主要用于对组合逻辑电路建模。门级描述:
一般使用Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。end基本门级元件模型元件符号功能说明元件符号功能说明and多输入端的与门nand多输入端的与非门or多输入端的或门nor多输入端的或非门xor多输入端的异或门xnor多输入端的异或非门buf多输出端的缓冲器not多输出端的反相器bufif1控制信号高电平有效的三态缓冲器notif1控制信号高电平有效的三态反相器bufif0控制信号低电平有效的三态缓冲器notif0控制信号低电平有效的三态反相器多输入门多输出门三态门4.6.1组合逻辑电路的门级建模门级建模:将逻辑电路图用HDL规定的文本语言表示出来。Verilog基本门级元件
andn-inputANDgatenandn-inputNANDgateorn-inputORgatenorn-inputNORgatexorn-inputexclusiveORgatexnorn-inputexclusiveNORgate
bufn-outputbuffer notn-outputinverter bufif0tri-statebuffer; Ioenable bufif1tri-statebuffer;hienable notif0tri-stateinverter;Ioenable notif1tri-stateinverter;hienable1、多输入门只允许有一个输出,但可以有多个输入。andA1(out,in1,in2,in3);输入2xxx1zxxx1xxx01111110zx10
输入1nand
nand真值表X-不确定状态Z-高阻态
and真值表x0zx0xx10100000zX10
输入1and输入2xxxxx调用名XX1XZXX1XX11111XX100ZX10输入1or输入2
or真值表输入2XXXXZXXXXXXX011XX100ZX10输入1xorxor真值表2、多输出门允许有多个输出,但只有一个输入。notN1(out1,out2,…,in);xx10zx10输入buf输出buf真值表输出xx01zx10输入notnot真值表bufB1(out1,out2,…,in);out1inout2outN…out1inout2outN…bufif1真值表xxxzzxxxzx1/z1/z1z10/z0/z0z0zx10控制输入bufif1数据输入xxxzzxxxzx0/z0/z0z11/z1/z10zzx10控制输入notif1数据输入notif1真值表3、三态门有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态z。4、设计举例//Gate-leveldescriptionofa2-to-4-linedecodermodule_2to4decoder(A1,A0,E,Y);inputA,B,E;output[3:0]Y;wireA1not,A0not,Enot;notn1(A1not,A1),n2(A0not,A0),n3(Enot,E);nandn4(Y[0],A1not,A0not,Enot),n5(Y[1],A1not,A0,Enot),n6(Y[2],A1,A0not,Enot),n7(Y[3],A1,A0,Enot);endmodule
试用Verilog语言的门级元件描述2线-4线译码器.说明部分功能描述例2用Verilog的门级元件进行描述由三态门构成的2选1数据选择器。//Gate-leveldescriptionofa2-to-1-linemultiplexermodule_2to1muxtri(A,B,SEL,L);inputA,B,SELoutputL;triL;bufif1(L,B,SEL);bufif0(L,A,SEL);endmodule
5、分层次的电路设计方法简介
4位全加器的层次结构框图分层次的电路设计:在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法。设计方法:自顶向下和自底向上两种常用的设计方法modulehalfadder(S,C,A,B);
inputA,B;
outputS,C;//Instantiateprimitivegates
xor(S,A,B);
and(C,A,B);endmodule//Gate-levelhierarchicaldescriptionof4-bitadder//Descriptionofhalfadder//Descriptionof1-bitfulladdermodulefulladder(S,CO,A,B,CI);inputA,B,CI;outputS,CO;wireS1,D1,D2;//内部节点信号//InstantiatethehalfadderhalfadderHA1(S1,D1,A,B);halfadderHA2(S,D2,S1,CI);org1(CO,D2,D1);endmoduleD1S1D2//Descriptionof4-bitfulladdermodule_4bit_adder(S,C3,A,B,C_1);input[3:0]A,B;inputC_1;output[3:0]S;outputC3;wireC0,C1,C2;//内部进位信号//InstantiatethefulladderfulladderFA0(S[0],C0,A[0],B[0],C_1),FA1(S[1],C1,A[1],B[1],C0),FA2(S[2],C2,A[2],B[2],C1),FA3(S[3],C3,A[3],B[3],C2);endmodule
4.6.2组合逻辑电路的数据流建模数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。VerilogHDL的运算符类型符号功能说明类型符号功能说明算术运算符(双目运算符)+-*/%二进制加二进制减二进制乘二进制除求模关系运算符(双目运算符)><>=<===!=大于小于大于或等于小于或等于等于不等于位运算符(双目运算符)~&|^^~或~^按位取反按位与按位或按位异或按位同或缩位运算符(单目运算符)&~&|~|^^~或~^缩位与缩位与非缩位或缩位或非缩位异或缩位同或逻辑运算符!&&||逻辑非逻辑与逻辑或移位运算符(双目运算符)>><<右移左移位运算符与缩位运算的比较A:4’b1010、B:4’b1111,A~^B=1010A^B=0101A|B=1111A&B=1010~A=0101~B=0000
位运算~^A=1~^B=1^A=0^B=0|A=1~|B=0~&A=1&B=1&A=1&0&1&0=0
缩位运算对同一个操作数的重复拼接还可以双重大括号构成的运算符{{}}例如{4{A}}=4’b1111,{2{A},2{B},C}=8’b11101000。作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。位拼接运算符设A=1’b1,B=2’b10,C=2’b00则{B,C}=4’b1000{A,B[1],C[0]}=3’b110{A,B,C,3’b101}=8’b11000101。一般用法:condition_expr?expr1:expr2;条件运算符是三目运算符,运算时根据条件表达式的值选择表达式。首先计算第一个操作数condition_expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回,结果为逻辑0,选择第三个操作数expr2的值作为结果返回。2、数据流建模举例连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意,在assign语句中,左边变量的数据类型必须是wire型。
数据流建模使用的基本语句是连续赋值语句assign,该语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。2选1数据选择器的连续赋值描述是:wireA,B,SEL,L;//声明4个连线型变量assignL=(A&~SEL)|(B&SEL);//连续赋值//Dataflowdescriptionofa2-to-4-linedecoder,moduledecoder_df(A1,A0,E,Y);inputA1,A0,E;output[3:0]Y;assignY[0]=~(~A1&~A0&~E);assignY[1]=~(~A1&A0&~E);assignY[2]=~(A1&~A0&~E);assignY[3]=~(A1&A0&~E);endmodule
//Dataflowdescriptionof2-to-1-linemultiplexermodulemux2x1_df(A,B,SEL,L);inputA,B,SEL;outputL;assignL=SEL?A:B;endmodule
用条件运算符描述了一个2选1的数据选择器。在连续赋值语句中,如果SEL=1,则输出L=A;否则L=B。4.6.3
组合逻辑电路的行为级建模
行为级建模就是描述数字逻辑电路的功能和算法。一般使用always结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。if(condition_expr1)true_statement1;elseif(condition_expr2)true_statement2;elseif(condition_expr3)true_statement3;……elsedefault_statement;1、条件语句(if语句)条件语句就是根据判断条件是否成立,确定下一步的运算。if(condition_expr)true_statement;if(condition_expr)true_statement;elsefale_statement;Verilog语言中有3种形式的if语句:if后面的条件表达式一般为逻辑表达式或关系表达式。执行if语句时,首先计算表达式的值,若结果为0、x或z,按“假”处理;若结果为1,按“真”处理,并执行相应的语句。是一种多分支条件选择语句,一般形式如下:case(case_expr)item_expr1:statement1;item_exp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国同轴信号防雷器数据监测研究报告
- 小学二年级奥数100题及答案
- 养老护理员前景
- 河北省唐山市玉田县2024-2025学年高三上学期11月期中考试 历史 含答案
- 广告牌承租合同范例
- 山东宗教建筑建设合同
- 深圳仓储物流租赁合同模板
- 办公楼地砖铺设工程合同
- 人员临时合同范例
- 建筑供电简易工程施工合同
- 建筑公司合规性评价报告
- 促销策略课件
- 大数据和人工智能知识考试题库600题(含答案)
- 2023年上海机场集团有限公司校园招聘笔试题库及答案解析
- 勘察质量及安全保障措施
- 高保真音频功率放大器
- 架桥机安全教育培训试卷
- 临时工用工协议书简单版(7篇)
- 国家电网公司施工项目部标准化管理手册(2021年版)线路工程分册
- 马克·夏加尔课件
- 沧州市基层诊所基本公共卫生服务医疗机构卫生院社区卫生服务中心村卫生室地址信息
评论
0/150
提交评论