![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 分频器和32位计数器 | |||||
作者:Free 文章来源:Free 点击数: 更新时间:2007-12-30 ![]() |
|||||
|
input clk,reset,cs,write,read,adder; //输入信号 inout data;//计数值 output c,clk1;//输出时钟与计数进位信号 wire[15:0] data_reg,data;//计数值的高16位数和低16位 reg c,clk1; reg[15:0] accuh,accul; reg[6:0] i; assign data_reg=(adder)?accuh:accul; /*地址信号为高,缓存计数值的高16位数,否则缓存计数值的低16位数*/ assign data=(!(cs|read))?data_reg:16'hz;//有片选和读信号,输出计数值 always@(posedge clk) begin if(!reset)//复位信号,从零开始计数 begin accuh<=0;accul<=0; clk1<=0; c<=0;i<=0; end else//没有复位信号,从给定计数初值计数 begin if(!write)//有写信号,读进给定的计数初始值 begin if(!cs)//有片选信号 begin if(adder) accuh<=data; else accul<=data;//读进初始值的低16位 end end if(i>=119)//对输入时钟进行120分频 begin i<=0; clk1<=~clk1;//得到分频后系统所需时钟 if(accul<16'hffff)//对分频得到的时钟计数 accul<=accul+1; else begin accuh<=accuh+1; accul<=0; end if((accuh==16'hffff)&&(accul==16'hffff))//如果计满则进位 c<=1; else c<=0; end else i<=i+1; end end endmodule |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 使用基于图形的物理综合软件… 分频器的硬件描述语言设计 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|