实验四位计数器设计样本.docx
- 文档编号:11121489
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:10
- 大小:321.03KB
实验四位计数器设计样本.docx
《实验四位计数器设计样本.docx》由会员分享,可在线阅读,更多相关《实验四位计数器设计样本.docx(10页珍藏版)》请在冰点文库上搜索。
实验四位计数器设计样本
实验四4位计数器设计
1.实验目
学习quartusii和modelsim用法;
学习原理图和veriloghdl混合输入设计办法;
掌握4位计数器设计设计及仿真办法。
2.实验原理
依照下面FPGA内部电路,设计4位计数器,并在在kx3c10F+开发板上实现该电路,并作仿真。
设计其中计数器模块CNT4B和数码管译码驱动模块DECL7SverilogHDL代码,并作出整个系统仿真。
2.14位计数器模块代码
moduleCNT4B(out,CLK,RST);//定义模块名和各个端口
outputout;//定义输出端口
inputCLK,RST;//定义输入时钟和复位
reg[3:
0]out;//定义四位计数器
always@(posedgeCLKornegedgeRST)//上升沿时钟和下降沿复位
begin
if(!
RST)//低电平复位
out<=4'd0;
else
out<=out+1;//每一种clk计数
end
endmodule
效果图:
2.2七段数码管代码
modulesegled(out1,a);//定义模块名和输入输出端口
input[3:
0]a;//输入一种3位矢量
output[6:
0]out1;//输出一种6位矢量
reg[6:
0]out1;//reg型变量用于always语句
always@(a)//敏感信号a
begin
case(a)//case语句用于选取输出
4'b0000:
out1<=7'b0111111;
4'b0001:
out1<=7'b0000110;
4'b0010:
out1<=7'b1011011;
4'b0011:
out1<=7'b1001111;
4'b0100:
out1<=7'b1100110;
4'b0101:
out1<=7'b1101101;
4'b0110:
out1<=7'b1111101;
4'b0111:
out1<=7'b0000111;
4'b1000:
out1<=7'b1111111;
4'b1001:
out1<=7'b1101111;
4'b1010:
out1<=7'b1110111;
4'b1011:
out1<=7'b1111100;
4'b1100:
out1<=7'b0111001;
4'b1101:
out1<=7'b1011110;
4'b1110:
out1<=7'b1111001;
4'b1111:
out1<=7'b1110001;
endcase
end
endmodule//模块结束
效果图:
2.3综合模块代码
//Copyright(C)1991-AlteraCorporation
//YouruseofAlteraCorporation'sdesigntools,logicfunctions
//andothersoftwareandtools,anditsAMPPpartnerlogic
//functions,andanyoutputfilesfromanyoftheforegoing
//(includingdeviceprogrammingorsimulationfiles),andany
//associateddocumentationorinformationareexpresslysubject
//tothetermsandconditionsoftheAlteraProgramLicense
//SubscriptionAgreement,AlteraMegaCoreFunctionLicense
//Agreement,orotherapplicablelicenseagreement,including,
//withoutlimitation,thatyouruseisforthesolepurposeof
//programminglogicdevicesmanufacturedbyAlteraandsoldby
//Alteraoritsauthorizeddistributors.Pleaserefertothe
//applicableagreementforfurtherdetails.
//PROGRAM"QuartusII64-Bit"
//VERSION"Version13.1.0Build16210/23/SJWebEdition"
//CREATED"TueApr1122:
35:
09"
modulecou(
CLK,
RST,
Q
);
inputwireCLK;
inputwireRST;
outputwire[6:
0]Q;
wire[3:
0]SYNTHESIZED_WIRE_0;
CNT4Bb2v_inst(
.CLK(CLK),
.RST(RST),
.out(SYNTHESIZED_WIRE_0));
segledb2v_inst1(
.a(SYNTHESIZED_WIRE_0),
.out1(Q));
endmodule
效果图:
3.实验设备
kx3c10F+开发板,电脑。
4.实验环节
4.1编译
4.1.1编译成果如下图所示:
编译解释:
在这个报告中,咱们可以看到如下信息:
Total logic elements 11/5136(<1%):
该芯片中共有5136个LE资源,其中11个在这个工程这次编译中得到了使用。
Total combinational functions 11/5136(<1%):
该芯片5136个LE资源中,其中11个用于实现组合逻辑。
Dedicated logic registers 4/5136(0%):
该芯片5136个LE资源中,其中4个用于实现寄存器,即时序逻辑。
从上述信息中,可以得到组合逻辑与时序逻辑使用比例——11/4= 2.75:
1。
4.1.2综合出来电路图
电路图解释:
从以上电路图可以看出本电路图重要由计数器(CNT4B)和七段数码管显示程序(segled)构成。
从CNT4BCLK端输入CLK信号,RST为低电平复位信号,本实验是四位二进制计数器可以计数16个,每个CLK上升沿计数一次,其中七段数码管是通过输入四位二进制数来选取相应断码进行输出显示。
4.2管脚分派
管脚连接:
通过双击Location选取与芯片上相应引脚进行连接。
4.3仿真
1.测试模块代码
moduletest;
regCLK,RST;//对输入信号定义reg型变量
wire[6:
0]Q;//输出定义为wire型
initialbegin//变量初始化
RST=1'b0;
#15RST=1'b1;
CLK=1'b0;
end
always#50CLK=~CLK;//产生时钟信号
couU1(.CLK(CLK),.RST(RST),.Q(Q));//元件例化
endmodule
2.modesim仿真图
仿真图解释:
通过仿真图咱们可以看到程序一开始低电平复位,然后rst高电平。
计数器开始计数,每过一种clk上升沿,七段数码管相应断码加1,与理论值相似,因此仿真验证成功,可以进行硬件仿真
4.4下载验证
5.实验体会
通过本次实验我学到了计数器工作原理,计数器虽然也曾经在数电上学过,但是用Verilog代码编写出来感觉还是很神奇,并且用代码写出来计数器简朴易理解。
由此结识到这门课程进行数字设计非常有效率,因此在此后学习中一定努力学习,勤学多问。
对于这次实验,由于比较简朴,因此做挺顺利,基本没什么问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 计数器 设计 样本
![提示](https://static.bingdoc.com/images/bang_tan.gif)