2ASK在FPGA中的实现(5)
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
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




