网站大量收购闲置独家精品文档,联系QQ:2885784924

Verilog程序代码集.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.全加器 Sum=A⊕B⊕Cin Count=AB+Cin(A+B) ①数据流 module adder(a,b,Cin,Sum,Count); input [2:0]a,b; input Cin; output [2:0] Sum; output Count; assign {Count,Sum}=a+b+Cin; endmodule ②行为描述always语句 module adder(a,b,c,Cin,Sum,Count); input [4:0] a,b; input Cin; output reg [4:0] Sum; output reg Count; reg T1,T2,T3; always@(a or b or Cin) begin Sum=a^b^Cin; T1=AB; T2=CinA; T3=CinB; Count=T1|T2|T3; end endmodule ③结构体 module adder (a,b,Cin,Sum,Count); input a,b,Cin; output Sum,Count; Xor a1(s1,a1,b); Xor a2(Sum,s1,Cin); and a3(T1,a,b); or a4(T2,a,b); and a5(T3,Cin,T2); or a6(Count,T1,T3); Endmodule 数值比较器 ①判断两值是否相等 module compare(a,b,equal); input [7:0] a,b; output equal; assign equal=(a==b)?|0; endmodule ②谁大谁输出 module compare(a,b,out); input [7:0] a,b; output reg[7:0] out; always@(a or b) begin if (ab) out=a; else if (a==b) out=a; else out=b; end endmodule ③输出参数 module compare(a.b.xgy,xsy,xey); input [7:0] x,y; output reg xgy,xsy,xey; always@(x or y) begin if (x==y) xey=1; else xey=0; if (xy) begin xgy=1;xsy=0;end else if (xy) begin xgy=0;xsy=1;end end endmodule 编码器(4-2 8-3 16-4编码) ①case语句 8-3编码(优先) module code (in ,out); input [7:0] in; output reg [2:0] out; always@(in) case x(in) begin f=1;8’b1xxxxxxx:out=3’b111;end begin f=1;8’b01xxxxxx:out=3’b110;end begin f=1;8’b001xxxxx:out=3’b101;end begin f=1;8’b0001xxxx:out=3’b100;end begin f=1;8’b00001xxx:out=3’b011;end begin f=1;8’b000001xx:out=3’b010;end begin f=1;8’b0000001x:out=3’b001;end begin f=1;8’out=3’b000;end default:begin f=0:out=3’b000;end endcase endmodule ②if-else语句(4-2优先编码) module code(in,out); input[3:0] in; output reg [1:0] out; always@(in) if (in[3]==1):begin f=1;out=2’b11;end else if (in[2]==1):begin f=1;out=2’b10;end else if (in[1]==1):begin f=1;out=2’b01;end else if (in[0]==1):begin f=1;out=2’b00;end else begin f=0;out=2’b00;end endmodule 多路选择器 ①行为描述(4选1) module choice(A,B,C,D,ncs addr out); input [7:0]A,B,C,D; input ncs; input [1:0] addr ; output reg[7:0] out; always@(A or B or C or

文档评论(0)

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

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

1亿VIP精品文档

相关文档