- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)