VerilogHDL常用建模方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《VerilogHDL常用建模方法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VerilogHDL 常用 建模 方法 课件
- 资源描述:
-
1、第3章 Verilog HDL常用建模方法 3.1 建模方法引例 3.2 结构化形式建模 3.3 数据流级建模 3.4 行为级建模 3.5 小结3.1 建模方法引例建模方法引例【例3-1】设计实现一个3人判决电路,当3个人中有2人或者超过2个人同意,则表决结果为通过;否则表决结果不通过。3.1 建模方法引例建模方法引例 第一步:理解题意 设a,b,c分别代表3个人,同意用1表示,不同意用0表示,y代表表决结果,1表示通过,0表示不通过。根据题意有,当a,b,c三个中有2个为1,或者3个均为1时,y为1,否则y为0。第二步:根据题意,列真值表abcy00000010010001111000101
2、1110111113.1 建模方法引例建模方法引例n 第三步:根据真值表,列输出方程:y=abc+abc+abc+abcn 第四步:化简方程,可以采用代数化简法或者卡诺图化简法 化简后的方程为:y=ab+bc+ca000101111000010111abcy3.1 建模方法引例建模方法引例n 第五步:根据化简后的方程画出电路图abbccaWideOr0abyc3.1 建模方法引例建模方法引例【例3-2】对应于步骤一的Verilog建模module decision_1(a,b,c,y);input a,b,c;output reg y;always(a,b,c)if(a&b=1)|(b&c=1
3、)|(c&a=1)|(a&b&c=1)y=1;else y=0;endmodule y1y3y5y7y8y9abcy3.1 建模方法引例建模方法引例【例3-3】对应于步骤二的Verilog建模module decision_2(a,b,c,y);input a,b,c;output reg y;always(a,b,c)case(a,b,c)3b000:y=0;3b001:y=0;3b010:y=0;3b011:y=1;3b100:y=0;3b101:y=1;3b110:y=1;3b111:y=1;endcaseendmoduleIN2.0OUT7.0DECODERWideOr0cyabDec
4、oder03.1 建模方法引例建模方法引例【例3-4】对应于步骤三的Verilog建模module decision_3(a,b,c,y);input a,b,c;output y;assign y=(a&b&c)|(a&b&c)|(a&b&c)|(a&b&c);endmodulealways00always02always04always06abcyalways053.1 建模方法引例建模方法引例【例3-5】对应于步骤四的Verilog建模module decision_4(a,b,c,y);input a,b,c;output y;assign y=(a&b)|(b&c)|(c&a);en
5、dmodule3.1 建模方法引例建模方法引例【例3-6】对应于步骤五的Verilog建模module decision_5(a,b,c,y);input a,b,c;output y;/assign y=(a&b)+(b&c)+(c&a);/assign y=a&b+b&c;and(ab,a,b),(bc,b,c),(ca,c,a);or(y,ab,bc,ca);endmodule3.1 建模方法引例建模方法引例图3-6 功能仿真波形3.2 结构化形式建模结构化形式建模 1.门级建模 2.用户自定义原语门级建模门级建模(1)与/或门类(2)缓冲/非门类门级建模门级建模【例3-7】利用双输入端
6、的nand门,编写自己与门(my_and)、或门(my_or)、非门(my_not)、异或门(my_xor)。module my_and(a,b,y);/用两个nand门input a,b;output y;wire nandab;nand(nandab,a,b),(y,nandab,nandab);endmodulemodule my_or(a,b,y);/用三个nand门input a,b;output y;wire nandaa,nandbb;nand(nandaa,a,a),(nandbb,b,b),(y,nandaa,nandbb);endmodulemodule my_not(a,
7、y);/用一个nand门input a;output y;nand(y,a,a);endmodulemodule my_xor(a,b,y);/用四个nand门实现异或门input a,b;output y;wire andab,c,d;nand(andab,a,b),(c,andab,a),(d,andab,b),(y,c,d);endmodule用户自定义原语用户自定义原语【例3-8】表示组合逻辑的UDP举例:一位全加器/全加器进位实现部分primitive U_ADD_C (CO,A,B,CI);output CO;input A,B,CI;table /A B CI:CO 1 1?:1
8、;1?1:1;?1 1:1;0 0?:0;0?0:0;?0 0:0;endtableendprimitive/全加器求和实现部分primitive U_ADD_S(S,A,B,CI);output S;input A,B,CI;table /A B CI :S 0 0 0 :0;0 0 1 :1;0 1 0 :1;0 1 1 :0;1 0 0 :1;1 0 1 :0;1 1 0 :0;1 1 1 :1;endtableendprimitive 用户自定义原语用户自定义原语/调用上述两个UDP的全加器模块module U_ADD(SUM,CO,a,b,ci);input a,b,ci;outpu
9、t SUM,CO;U_ADD_S U1(SUM,a,b,ci);U_ADD_C U2(CO,a,b,ci);endmoduleABCISABCICOU_ADD_S:U1U_ADD_C:U2SUMCOabci用户自定义原语用户自定义原语【例3-9】表示时序逻辑的UDP举例:D触发器primitive d_edge_ff(q,clk,data);output q;input clk,data;reg q;table/clk dat state next(01)0 :?:0;(01)1 :?:1;/时钟下降沿(?0)?:?:-;/时钟稳定时忽略data变化?(?):?:-;endtableendpr
10、imitiveDENAQPRECLRcomb0qdataclk3.3 数据流级建模数据流级建模 1.连续赋值语句 2.运算符类型连续赋值语句连续赋值语句【例3-10】使用数据流建模,实现一位半加器。module adder_half(ain,bin,sum,co);input ain,bin;output sum,co;assign co,sum=ain+bin;endmoduleinputoutputainbinsumco0000011010101101运算符类型运算符类型运算符类型运算符执行的操作操作数的个数运算符类型运算符执行的操作操作数的个数算术*乘2关系大于2/除2=大于等于2+加2
11、=小于等于2-减2=等于2逻辑!逻辑反1!=不等于2&逻辑与2缩减&缩减与1|逻辑或2&缩减与非1按位按位求反1|缩减或1&按位与2|缩减或非1|按位或2缩减异或1按位异或2缩减同或1按位同或2位拼接拼接任意移位右移2条件?:条件3算术运算符算术运算符【例3-11】算术运算符示例module arith(a,b,add,sub,mul,div,mod,pow);input7:0 a,b;output7:0 add,sub,mul,div,mod,pow;assign add=a+b,sub=a-b,mul=a*b,div=a/b,mod=a%b,pow=a*4;endmodule关系运算符关系
12、运算符关系运算符包括:大于()、小于(=)、小于等于(=)、等于(=)、不等于(!=)。逻辑运算符逻辑运算符ab!a!ba&ba|b真真假假真真真假假真假真假真真假假真假假真真假假按位运算符按位运算符按位与01按位或01按位取反结果0000010110111110按位异或01按位同或01001010110101缩减运算符缩减运算符缩减运算符包括:缩减与(&)、缩减与非(&)、缩减或(|)、缩减或非(|)、缩减异或()、缩减同或(,)。缩减运算符是单目运算符,也有与、或、非运算。其与、或、非运算规则类似于位运算符的与、或、非运算规则,但其运算过程不同。条件运算符条件运算符【例3-12】试用条件运
13、算符来实现一个四选一多路选择器。module mux4to1(out,condition1,condition2,in1,in2,in3,in4);output out;input in1,in2,in3,in4;input condition1,condition2;assign out=(condition1)?(condition2?in1:in2):(condition2?in3:in4);endmodule 移位运算符移位运算符【例3-13】采用移位运算符实现两个3位数的乘法。module mul_3bit(a,b,mul);input 2:0 a,b;output5:0 mul;w
14、ire5:0 mul1,mul2,mul3;assign mul=mul3;assign mul1=b0?a:0;assign mul2=b1?(mul1+(a1):mul1;assign mul3=b2?(mul2+(a2):mul2;endmodule 位拼接运算符位拼接运算符a,b3:0,w,3b101 /等价于a,b3,b2,b1,b0,w,1b1,1b0,1b11,1 /64位,从右边数第0位为1,第32位为1,其余位均为04w /等价于w,w,w,wb,3a,b /等价于b,a,b,a,b,a,b优先级别优先级别3.4 行为级建模行为级建模 1.结构化过程语句always 2.过程
展开阅读全文