Verilog-HDL电路设计.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog-HDL电路设计

第五章 Verilog-HDL电路设计1.基础知识1.1 模块结构端口定义 module 模块名(输入输出端口列表); 端口说明 input 输入端口; output 输出端口; 信号说明 wire[n-1:0] x, y, z;reg[n-1] u, v, w; 功能定义1.2数据类型reg型wire型1.3基本语句assign语句,过程赋值语句(=和=)if …else 和case语句for和while语句always和initial块语句1.4建模方法结构建模(门级建模和模块实例化)行为建模(数据流建模和顺序行为建模)2.基本逻辑电路2.1 引例设计实现一个3人表决电路,若3个人中有2人或者超过2人同意,则表决通过;否则表决不通过。解:①理解题意。设a, b, c分别代表3个人,同意用1表示,不同意用0表示。y代表表决结果,1表示通过,0表示不通过。根据题意,当a,b,c三个中有2个为1,或者3个为1时,y=1;否则y=0。②根据题意,列真值表:abcy00000010010001111000101111011111③根据真值表,列输出方程:④化简方程⑤ 根据化简后的方程画出电路图2.1.1 对应①建模①当a, b ,c三个中有2个为1,或者3个为1时,y=1;否则y=0.module decision_1(a,b,c,y);input a,b,c; output y;reg y;always @(a, b, c)if ((ab==1)|(bc==1)|(ca==1)|(abc==1))y = 1;elsey = 0;endmodule2.1.2 对应②建模②真值表abcy00000010010001111000101111011111module decision_2(a,b,c,y);input a,b,c; output y;regy; 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;endcaseendmodule2.1.3 对应③建模③根据真值表,列输出方程module decision_3(a,b,c,y);inputa,b,c;output y;assign y = (~abc)|(a~bc)|(ab~c)|(abc);endmodule对应④建模④化简方程module decision_4(a,b,c,y);input a,b,c;output y;assign y = (bc)|(ac)|(ab);endmodule对应⑤建模module decision_5(a,b,c,y);inputa,b,c;outputy;wireab, bc, ca;and(ab, a, b),(bc, b,c),(ca ,c, a);or(y, ab, bc, ca);endmodule基本组合逻辑电路数字逻辑电路就本质而言,分为组合逻辑和时序逻辑两大类。1.组合逻辑构成:与、或、非门等组成的网络。常用电路:多路选择器、比较器、加法器、乘法器等逻辑功能特点:任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。2.时序逻辑构成:多个触发器和多个组合逻辑模块组成的网络。常用电路:计数器、移位寄存器、频率计、滤波器、存储器等。逻辑功能特点:任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态。 2.2.1 加法器方法1:结构建模的4位级连全加器`include full_add1.vmodule add4_1(sum, cout, a, b, cin); input cin; input [3:0] a, b; outputcout; output [3:0] sum; wire cin1,cin2,cin3;//调用一位全加器子模块full_add1full_add1 f0 (a[0],b[0],cin,sum[0],cin1);full_add1 f1 (a[1],b[1],cin1,sum[1], cin2);full_add1 f2 (a[2],b[2],cin2,sum[2], cin3);full_add1 f3 (a[3],b[3],cin3,sum[3], cout);endmodule方法2:数据流建模的4位加法器module add4_2(cout,sum,a,b,cin);input cin; input[3:0] a, b; output cout; o

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档