- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验六 流水线与分频技术
实验六:流水线与分频设计实验
班级: 姓名: 学号:
作业完成后,以班级为单位,班长或课代表收集齐电子版实验报告,统一提交.
文件命名规则如“通1_王五_学号”
一、实验目的
掌握分频技术思路
掌握流水线设计的方法和基本形式
二、预习要求
1.了解veirlogHDL行为语句。
2..流水线和分频设计方法。
实验基本概念
偶数分频2N:模N计数器,0到N,输出翻转
奇数分频2N+1:
(1)占空比X/(2N+1):用模2N+1的计数器,0x2N。从0计数到X时钟翻转,计数到2N+1再再翻转,并复位计数器。
(2)占空比50%:基于(1)中占空比为非50%的输出时钟在输入时钟的上升沿触发翻转;若在同一个输入时钟周期内,此计数器的两次输出时钟翻转分别在与(1)中对应的下降沿触发翻转,输出的时钟与(1)中输出的时钟进行逻辑或,即可得到占空比为50%的奇数倍分频时钟。当然其输出端再与偶数倍分频器串接则可以实现偶数倍分频。
N-0.5分频:
N模计数器,从0开始上升沿奇数,N-1时输出翻转,在时钟翻转后经历0.5个周期时,计数器输出时钟必须进行再次翻转,即当CLK为下降沿时计数器的输入端应为上升沿脉冲,使计数器计数达到N而复位为0重新开始计数同时输出时钟翻转。这个过程所要做的就是对CLK进行适当的变换,使之送给计数器的触发时钟每经历N-0.5个周期就翻转一次。
任意N+A/B分频
分别设计一个分频值为N和分频值N+1的整数分频器,采用脉冲计数来控制单位时间内两个分频器出现的次数。
设N出现的频率为a,则N×a+(N+1)×(B-a)=N×B+A 求解a=B-A; 所以N+1出现的频率为A。
例如:
8.1分频 N=8 N+1=9 A=1 B=10 a=9
N*a+(N+1)x1=8*9+9*1
10.23分频: N=10 N+1=11 A=23 B=100 a=77 N*a+(N+1)x1=10*77+11*23
【例9.10】 50%的奇数分频(模7)
module count7(reset,clk,cout);
input clk,reset; output wire cout;
reg[2:0] m,n; reg cout1,cout2;
assign cout=cout1|cout2; //两个计数器的输出相或
always @(posedge clk)
begin
if(!reset) begin cout1=0; m=0; end
else begin if(m==6) m=0; else m=m+1;
if(m3) cout1=1; else cout1=0; end
end
always @(negedge clk)
begin
if(!reset) begin cout2=0; n=0; end
else begin if(n==6) n=0; else n=n+1;
if(n3) cout2=1; else cout2=0; end
end
endmodule
【例9.11】 50%的奇数分频
module count_num(reset,clk,cout);
parameter NUM=13;
input clk,reset; output wire cout;
reg[4:0] m,n; reg cout1,cout2;
assign cout=cout1|cout2;
always @(posedge clk)
begin if(!reset) begin cout1=0; m=0; end
else
begin if(m==NUM-1) m=0; else m=m+1;
if(m(NUM-1)/2) cout1=1; else cout1=0;
end
end
always @(negedge clk)
begin if(!reset) begin cout2=0; n=0; end
else begin
if(n==NUM-1) n=0; else n=n+1;
if(n(NUM-1)/2) cout2=1; else cout2=0; end
end
endmodule
【例9.12】 5.5
module fdiv5_5(clkin,clr,clkout);
input clkin,clr; output reg clkout;
reg clk1; wire clk2; integer count;
xor xor1(clk2,clkin,clk1); //异或门
always@(posedge c
您可能关注的文档
最近下载
- 党委前置研究讨论重大事项清单及程序.docx VIP
- 第三单元(知识清单)-2024-2025学年二年级语文上册单元复习(统编版).docx VIP
- 新版高中物理必做实验目录及器材--(电子版).xls VIP
- 学习贯彻《关于加强党的作风建设论述摘编》PPT:持之以恒推进作风建设常态化长效化,保持党的先进性和纯洁性(附文稿).pptx VIP
- 工作饱和度分析.doc VIP
- 上海沪教版六年级有理数综合复习讲义.docx VIP
- 《Linux网络操作系统实用教程》全套教学课件.pptx
- CCC强制性产品认证培训教材(PPT 89页).ppt VIP
- 2025全国青少年模拟飞行考核理论知识题库40题及完整答案1套.docx VIP
- 中石化安全培训考试试题及答案安全教育培训考试试题及答案.docx VIP
原创力文档


文档评论(0)