- 1、本文档共90页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§7.7 基本组合逻辑电路(Combinational Logic Circuit)设计 组合逻辑主要用于进行电路中的数学和逻辑运算,如实现加法、乘法、与、非运算等。 组合逻辑没有“记忆”功能,即任何时刻输入变化时,输出也在同一时刻变化 。 组合逻辑示意图 门级结构描述 module gate1(F,A,B,C,D); input A,B,C,D; output F; nand(F1,A,B); //调用门元件 and(F2,B,C,D); or(F,F1,F2); endmodule 数据流描述 module gate2(F,A,B,C,D); input A,B,C,D; output F; assign F=(~(AB))|(BCD); endmodule 译码器 译码是将输入代码转换成特定的输出信号。能实现这种译码功能的逻辑电路称为译码器。现以74138为例。 74138真值表 74138引脚图 module ttl74138(a,y,g1,g2a,g2b); input[2:0] a; input g1,g2a,g2b; output reg[7:0] y; always @(*) begin if(g1 ~g2a ~g2b) //只有当g1、g2a、g2b为100时,译码器使能 begin case(a) 3b000:y=8 //译码输出 3b001:y=8 3b010:y=8 3b011:y=8 3b100:y=8 3b101:y=8 3b110:y=8 3b111:y=8 default:y=8 endcase end else y=8 end endmodule 七段显示译码器 真值表与字体结构: 共阴极 module decode4_7(decodeout,indec); output[6:0] decodeout; input[3:0] indec; reg[6:0] decodeout; always @(indec) begin case(indec) //用case语句进行译码 4d0:decodeout=7b1111110; 4d1:decodeout=7b0110000; 4d2:decodeout=7b1101101; 4d3:decodeout=7b1111001; 4d4:decodeout=7b0110011; 4d5:decodeout=7b1011011; 4d6:decodeout=7b1011111; 4d7:decodeout=7b1110000; 4d8:decodeout=7b1111111; 4d9:decodeout=7b1111011; default: decodeout=7bx; endcase end endmodule 优先编码器 允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码。现以74148为例。 【例7.23】 8线—3线优先编码器74148的Verilog描述 module ttl74148(din,ei,gs,eo,dout); input[7:0] din; input ei; output reg gs,eo; output reg[2:0] dout; always @(ei,din) begin if(ei) begin dout=3b111;gs=1b1;eo=1b1; end else if(din==8b111111111) begin dout=3b111; gs=1b1;eo=1b0;end else if(!din[7]) begin dout=3b000;gs=1b0;eo=1b1;end else if(!din[6]) begin dout=3b001;gs=1b0;eo=1b1;end else if(!din[5]) begin dout=3b010;gs=1b0;eo=1b1;end else if(!din[4]) begin dout=3b011;gs=1b0;eo=1b1;end else if(!din[3]) begin dout=3b100;gs=1b0;eo=1b1;end else if(!din[2]) begin dout=3b101;
文档评论(0)