VerilogHDL(自学).ppt

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

第七章 用Verilog HDL设计数字电路 7.1 常用组合电路的设计(组合电路以自学为主) 7.1.2译码器、编码器 7.1.3 数据选择器 7.1.4 奇偶校验器 7. 1 .5 :BCD码-七段 译码器(共阴) 7.1.6 运算电路(补充) 一、加法器: 二、比较器 7.2 常用时序电路模块的设计 7.2.1 D触发器 7.2.2 数据锁存器(latch) 7.2.3 数据寄存器 7.2.4 移位寄存器(单向) 7.2.5 计数器 一、可预置的n位二进制计数器(带异步清0) 二、任意进制计数器(带异步清0) 三、可预置的加减计数器 四、BCD码计数器 * 主要内容: 7.1 常用组合电路的设计 门电路的描述 译码器、编码器 数据选择器 奇偶校验器 BCD码-七段 译码器 运算电路(补充) 7.2常用时序电路模块 D触发器 数据锁存器 数据寄存器 移位寄存器 各种计数器 1.基本门电路的描述 7.1.1 简单门电路的描述 方法1:调用门原语 module gate1(F, A, B, C, D); input A, B, C, D; output F; wire F1,F2; nand G1 ( F1, A, B ); and G2 ( F2, B, C, D); or G3 ( F, F1, F2); endmodule 门的名称:可省略。 原语 多输入门:原语名 例化名称 (输出,输入1,输入2……) 调用格式: 非门: 原语名 例化名称 (输出,输入) ≥1 A B C D F F1 F2 G1 G2 G3 结构描述 方法2:用assign连续赋值语句描述 ≥1 A B C D F F1 F2 module gate2(F,A,B,C,D); input A,B,C,D; output F; assign F=~(A B)|(B C D); endmodule 方法3:用过程赋值语句描述 module gate3(F,A,B,C,D); input A,B,C,D; output F; reg F; always @(A or B or C or D) begin F=~(A B) | (B C D); end endmodule 敏感信号表: 与同步时序电路差别? 逻辑表达式 2.三态门 例7.2 用bufifl关键字描述的三态门 EN Bufif1原语: module tristate(in, oe, out); input in, oe; output out; tri out; //注意三态门端口的排列顺序 bufif1 b1(out, in, oe);//(输入,输出,使能) endmodule 例7.3 用assign描述的三态门 module tri_1(out, in, en); output out; input in, en; assign out = en ? in : 1bz; //若en = 1, out = in;若en = 0 ,out为高阻态 endmodule EN out in oe b1 EN out in en 与wire一样 例7.4 用三态双向驱动器 module bidir(tri_inout , out , in , en , b); inout tri_inout; output out; input in, en, b; assign tri_inout = en ? in : 1bz;//三态门 assign out = tri_inout ^ b; endmodule 双向端口 EN in en =1 tri_inout out b 1. 3线_8线译码器(输出低电平有效)out0 out7 BIN/OCT 0 1 2 in0 in1 in2 module edcoder_38(out, in); output[7:0] out; input[2:0] in; reg[7:0] out; always @(in) begin case(in) 3d0: out = 8b1111_1110; 3d1: out = 8b1111_1101; 3d2: out = 8b1111_1011; 3d3: out = 8b1111_0111; 3d4: out

文档评论(0)

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

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

1亿VIP精品文档

相关文档