- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数字电路与逻辑设计》实验报告
学生姓名: 学号: 所在班级:
第[ ]页 共[ ]页
数字逻辑实验报告(4)
团队成员:
姓名班级学号贡献百分比
实验部分:实验完成结果、时间
(亮点、完成、基本完成、未完成)总分
(实验部分70% +报告30%)第一个实验第二个实验第三个实验检查结果检查时间检查老师
报告人 :
实验指导教师:
报告批阅教师:
计算机科学与技术学院
20 年 月 日
实验内容
基于FPGA应用的逻辑电路设计
实验目的
1.学习FPGA的设计方法;
2.掌握利用Verilog HDL设计逻辑电路的能力。
实验所用组件
Basys2开发板(芯片为XC3S100E,封装为CP132) 1套。
实验要求
4位二进制计数器(必选)
设计一个能清零、置数和进位/借位输出的增1/减1的4位二进制计数器,其结构框图如图1所示。电路输入为计数脉冲CP、工作模式选择M、预制初值D,C,B,A(其中D为高位,A为低位)和预制控制,清零端;输出为计数值QD,QC,QB,QA(QD为高位,QA为低位)和进位/借位输出。当为0时,电路输出清零;预制控制=0时,将D、C、B、A的输入值送到计数器中,并立即在QD,QC,QB,QA中输出。模式选择端M=1时加1计数,当M=0时减1计数。当CP端输入一个上升沿信号时进行一次计数,计数有进位/借位时端输出一个负脉冲。
图1 4位二进制加法/减法计数器
具体要求:
(1)用Verilog HDL实现该计数器,将之下载到Basys2开发板中,并进行验证;
(2)借助该4位二进制计数器,用Verilog HDL实现一个初值为2的模8计数器,将之下载到Basys2开发板中,并进行验证 1。
两位二进制数值比较器(必选)
设计一个二位二进制数值比较器。当AB时,F1=1,F2=F3=0;当A=B时,F2=1,F1=F3=0;当AB时,F3=1,F1=F2=0。
具体要求:
(1)用Verilog HDL设计一个一位二进制数值比较器(行为级描述);
(2)利用所设计的一位二进制数值比较器,用Verilog HDL设计一个二位二进制数值比较器(结构级描述);
将所设计的电路下载到Basys2开发板上,并进行验证。
单脉冲发生器(可选)
用与非门设计一个单脉冲发生器,电路如图2所示。
图2 单脉冲发生器电路图
典型输入、输出时间图见图3
图3. 典型输入、输出时间图
具体要求:
(1)用Verilog DHL描述所设计的电路图(采用行为级描述),将之下载到Basys2开发板中,并进行验证。
五、实验方案设计
4位二进制计数器的设计方案
[要求:给出详细的设计过程,包括源程序、仿真程序、引脚约束(绑定)代码和注释等,可续页]
(1)4位2进制计数器
源程序:
module led_1(in,CP,CLR,Ld,M,out,Qcc);
input[3:0] in;
input CP,CLR,Ld,M;
output[3:0] out;
output Qcc;
reg[3:0] out;
reg Qcc;
initial out=4b0000;
initial Qcc=1;
always@(posedge CP or negedge Ld or negedge CLR)
begin
if(~CLR)
begin
out=4b0000;
Qcc=1;
end
else if(~Ld)
begin
out=in;
Qcc=1;
end
else if(M)
begin
out=out+4b0001;
Qcc=1;
end
else if(~M)
begin
out=out-4b0001;
Qcc=1;
end
else if((out==4b1111)M)
begin
out=4b0000;
Qcc=0;
end
else if((out==4b0000)M)
begin
out=4b0000;
Qcc=1;
end
end
endmodule
仿真程序:
module test_1;
// Inputs
reg [3:0] in;
reg CP;
reg CLR;
reg Ld;
reg M;
// Outputs
wire [3:0] out;
wire Qcc;
// Instantiate the U
文档评论(0)