- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
___计算机__学院 网络工程 专业 1 班____组、学号 姓名 协作者______________ 教师评定_________________
实验题目_________________数字逻辑期末综合实验_________________
题目(学号单号的做1、2,双号的做3、4)
用HC161设计一个九进制计数器(清零法和置数法,参考《实验指导书》P53)
用HC161设计一个分频器(参考《实验指导书》P52,不用数码显示)
用HC138译码器实现符合电路
用数据选择器实现符合电路
要求按顺序报告以下内容
设计分析过程
连线图
预分析其运行步骤、输入输出的变化过程(包括控制端)
实验通过老师验证的,拍下实验实际连线图,及验证数据;
没通过验证的,分析实验不成功的原因。
用Verilog编写的代码模块及测试平台
第一次仿真结果
实验报告
选做题目:用HC161设计一个九进制计数器(置数法)
设计分析过程
九进制计数器的计数容量是9,而计数器74HC161的计数器容量为16。显然,如使74HC161的计数初值由7(对应的二进制数为0111)开始,即可将计数容量由16变为9,从而得到九进计数器,相应的状态图如图所示。
/0 /0 /0 /0
/1 /0
/0 /0 /0
由于需要在每次计数值达到1111后,下一个状态从0111开始,从而应使D3D2D1D0=0111。此时,还需生成置位信号,置位信号可通过将进位输出(TC)取反获得,即=。
连线图
1 VCC VCC
clk CP TC C
1 D0 Q0 Q0
1 D1 Q1 Q1
1 D2 Q2 Q2
0 D3 Q3 Q3
1 CEP CET 1
GND
预分析其运行步骤、输入输出的变化过程(包括控制端)
输入变化主要是时钟信号的变化,其他数据变化都是根据时钟变化而变化的,实际连线图采用的是1Hz时钟信号,实验中是每1s产生一次时钟信号,即计数器每1s进行一次计数,从0111开始,随着时钟变化而进行计数,每次计数值达到1111后,下一个状态从0111开始。每次计数值达到1111时,还会生成进位信号,同时将进位信号取反,形成置位信号,使计数器重新由0111开始计数。
实验通过老师验证的,拍下实验实际连线图,及验证数据;
没通过验证的,分析实验不成功的原因。
用Verilog编写的代码模块及测试平台
代码模块:
module?HC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC);?input?CP;?input?CEP,CET;?output[3:0]?Qn;?input?MRN,PEN;?input[3:0]?Dn;?output?TC;?reg[3:0]?qaux;???reg?TC;??always?@?(posedge?CP)?begin?if(!MRN)?qaux=4b0111;?else?if(!PEN)?qaux=Dn;?else?if(CEPCET)?qaux=qaux+1;??else?qaux=qaux;??end??always?@?(posedge?CP)?begin??if(qaux==4b1110??CET==1)??TC=1b1;?else?TC=1b0;?end??assign?Qn=qaux;??endmodule?
测试平台
`timescale 1ns/1ns
module testbench;
reg cp,cep,cet,mrn,pen;
reg[3:0] dn;
wire tc;
wire[3:0] qn;
parameter DELY=20;
always #(DELY/2) cp=~cp;
initial
begin
cep=1;
repeat(15)
#DELY cet=$random;
end
initial
begin
pen=1;
#DELY pen=0;
#60 pen=1;
end
initi
文档评论(0)