- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA实验代码Verilog
实验一、五人表决器
(1)vote5.v
①方案一
`timescale 1ns / 1ps
module vote5(
input a,b,c,d,e,
output f
);
assign f=abc||abd||abe||acd||ace||
ade||bcd||bce||bde||cde;
endmodule
②方案二
module vote5(a,b,c,d,e,f);
input a,b,c,d,e;
output f;
reg f;
reg[2:0] count1;
initial count1=0;
always@(a,b,c,d,e)
begin
count1=a+b+c+d+e;
f=count13?0:1;
end
endmodule
(2)test.v
module test;
reg a;
reg b;
reg c;
reg d;
reg e;
wire f;
vote5 uut (
.a(a),
.b(b),
.c(c),
.d(d),
.e(e),
.f(f)
);
initial begin
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
#100 a = 1;
b = 0;
c = 0;
d = 0;
e = 0;
#100 a = 1;
b = 1;
c = 0;
d = 0;
e = 0;
#100 a = 1;
b = 1;
c = 1;
d = 0;
e = 0;
#100 a = 1;
b = 1;
c = 1;
d = 1;
e = 0;
#100 a = 1;
b = 1;
c = 1;
d = 1;
e = 1;
end
endmodule
(3)vote5.ucf
NET a LOC=P11;
NET b LOC=L3;
NET c LOC=K3;
NET d LOC=B4;
NET e LOC=G3;
NET f LOC=M5;
实验二、加法器
(1)adder.v
module adder(a,b,sum,co);
parameter n=4;
input [n:0] a,b;
output [n:0] sum;
output co;
assign {co,sum}=a+b;
endmodule
(2)test.v
module test;
reg [4:0] a;
reg [4:0] b;
wire [4:0] sum;
wire co;
adder uut (
.a(a),
.b(b),
.sum(sum),
.co(co)
);
initial begin
a = 0;
b = 0;
#100 a = 3;
b = 2;
#100 a = 10;
b = 8;
end
endmodule
(3) adder.ucf
NET a3 LOC=N3;
NET a2 LOC=E2;
NET a1 LOC=F3;
NET a0 LOC=G3;
NET b3 LOC=B4;
NET b2 LOC=K3;
NET b1 LOC=L3;
NET b0 LOC=P11;
NET co LOC=N5;
NET sum3 LOC=P6;
NET sum2 LOC=P7;
NET sum1 LOC=M11;
NET sum0 LOC=M5;
实验三、流水灯
(1)ledflash.v
module ledflash(
output [7:0] ld,
input clk
);
reg clk1s;
reg[7:0] tmp;
reg[31:0] count;
assign ld=tmp;
initial
begin
clk1s=0;
tmp=8
count=0;
end
always@(posedge clk)
begin
count=count+1;
if (count=
begin
count=0;
clk1s=~clk1s;
end
end
always@(posedge clk1s)
begin
if (clk1s==1)
tmp={tmp[6:0],tmp[
文档评论(0)