- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog实现 奇偶分频
我把其中的实现奇数分频 50 % 做成了IP(具体 原理可以参见),调用时只需将参数传递过去就行了。
建议大家在写这种基本模块时,写成parameter 定义参数的形式家锐的Blog,方便日后的调用。
Source Code
-------------------------------------------------------------------------------------------------------
module div(???????? input clk,???????? output clk_div???????? );??????????? parameter N=2;??? integer counter_pos=0;??? integer counter_neg=0;??? reg clk_pos=0;??? reg clk_neg=0;?????? or o1(clk_div,clk_pos,clk_neg);?????? always@(posedge clk)?????? begin?????????? if(counter_pos!=N)????????????? counter_pos=counter_pos+1;??????????? else?????????????? counter_pos=0;???????????????????? end??? always@(negedge clk)?????? begin?????????? if(counter_neg!=N)????????????? counter_neg=counter_neg+1;??????????? else?????????????? counter_neg=0;???????????????????? end????????? always@(counter_pos)?????? begin?????????? if(counter_pos==0 || counter_pos==N1)?????????? clk_pos=~clk_pos;?????? end????????? always@(counter_neg)?????? begin?????????? if(counter_neg==0 || counter_neg==N1)?????????? clk_neg=~clk_neg;?????? end???????? endmodule
------------------------------------------------------------------------
使用说明:
在调用时只需要将参数传递就行了
如:我们实现(M+1)分频,其中M是偶数,实例化时
div? #(.N(M)) d(.clk(),.clk_div());
ps:
今天突然想到了一种可以实现任意整数 50%占空比的分频方法。
大体思路是根据时钟每个周期都有两次电平变化,实现N分频的时,总共有2xN次电平变化,分频时将时钟分成前N个 时间,和后N个时间,就可以实现50%站空比了。
Source Code
------------------------------------------------------------------------------------------------------------
module div_half(??????????? input clk,??????????? output reg clk_out=0??????????? );
parameter N=3;
integer counter=0;
always@(clk)?? begin?????? if(counter != ((N1) -1))????????? counter=counter+1;??????? else?????????? counter=0;?? end??always@(counter)?? begin?????? if(counter == N || counter ==0)?????? clk_out=~clk_out;?? end? endmodule
------------------------------------------------------------
?
testbench
————————————————————————
module div_half_test;???
您可能关注的文档
- TOT项目管理案例三.doc
- to读书a good man is hard to find读书报告.doc
- TPU生产配方的设计与调整.doc
- TP盖板玻璃强度分析.doc
- TP及CAP化疗方案治疗晚期卵巢癌的比较.doc
- Trace Evidence Questions:微量物证的问题.doc
- TTF测试步骤及要求.doc
- TW型塔式磨浸机构造和原理及其在黄金选冶厂的应用.doc
- T梁存放支护方案.doc
- T梁负弯矩张拉安全技术交底.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)