77范文网 - 专业文章范例文档资料分享平台

2ASK在FPGA中的实现(5)

来源:网络收集 时间:2019-07-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Count<=0; else if(enable) begin if(!dnup) begin

if(Count==Ktop) Count<=0; else

Count<=Count+1; end else begin if(Count==0) Count<=Ktop; else

Count<=Count-1; end end end

//输出进位脉冲carry和借位脉冲borrow assign carry=enable&(!dnup)&(Count==Ktop); assign borrow=enable&dnup&(Count==0); endmodule

module idcounter(IDclock,reset,inc,dec,IDout);//脉冲增减模块 input IDclock,reset,inc,dec; output IDout; reg IDout;

reg inc_new,dec_new,inc_pulse,dec_pulse; reg delayed,advanced,Tff;

21

always @(posedge IDclock) begin if(!inc) begin inc_new<=1; inc_pulse<=0; end else if (inc_pulse) begin inc_new<=0; inc_pulse<=0; end else if (inc&&inc_new) begin

inc_pulse<=1; inc_new<=0; end else begin

inc_pulse<=0; inc_new<=0; end end

always @(posedge IDclock) begin if(!dec) begin

dec_new<=1; dec_pulse<=0; end

22

else if (dec_pulse) begin dec_new<=0; dec_pulse<=0; end

else if (dec&&dec_new) begin

dec_pulse<=1; dec_new<=0; end else begin

dec_pulse<=0; dec_new<=0; end end

always@(posedge IDclock) begin

if (reset)

begin Tff<=0; delayed<=1;advanced<=1; end else begin

if (inc_pulse)

begin advanced<=1;Tff<=!Tff; end else if(dec_pulse)

begin delayed<=1; Tff<=!Tff; end else if (Tff==0) begin

if(!advanced) Tff<=!Tff;

23

else if(advanced)

begin Tff<=Tff; advanced<=0; end end else begin if (!delayed) Tff<=!Tff; else if(delayed)

begin Tff<=Tff;delayed<=0; end end end end

always @(IDclock or Tff) begin if (Tff) IDout=0; else begin

if(IDclock) IDout=0; else IDout=1; end end endmodule

module counter_N(clk, fin, reset, count_N);//利用clk对fin脉冲的测量并给出N值

input clk, fin, reset; output [14:0] count_N;

24

reg [14:0] count_N; reg [15:0] cnt; reg cnt_en; reg load;

wire cnt_clr;

always @ (posedge fin )//fin上升沿到的时候,产生各种标志以便后面控制 begin if (reset) begin cnt_en=0; load=1; end else begin

cnt_en=~cnt_en; load=~cnt_en; end end

assign cnt_clr=~(~fin & load);

always @(posedge clk or negedge cnt_clr) begin

if (!cnt_clr) cnt=0; else if (cnt_en) begin

if (cnt==15531) cnt=0; else cnt=cnt+1; end

25

end

always @ (posedge load) begin

count_N=cnt/2; //这里取fin周期的一半 end endmodule

4.N分频模块

module div_N(clkin,n,reset,clkout); //N分频模块 input clkin,reset; input [14:0] n; output clkout; reg clkout; integer count; always@(posedge clkin) if(reset) begin clkout<=0; count<=0; end else begin

if(count>=(n/2)-1)

begin clkout<=~clkout;count<=0;end else

count<=count+1; end endmodul

26

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库2ASK在FPGA中的实现(5)在线全文阅读。

2ASK在FPGA中的实现(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/666580.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: