找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 447|回复: 0
打印 上一主题 下一主题

时钟发生器

[复制链接]

1

主题

20

帖子

167

积分

二级会员(20)

Rank: 2Rank: 2

积分
167
跳转到指定楼层
1#
发表于 2012-9-21 16:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1、时钟发生器clkgen利用外来的时钟信号clk生成一系列时钟信号,clk1、fetch、alu_clk,并送往cpu的其他部件。
4 c1 i, t' N# A2、其中,fetch是外来时钟clk的8分频信号。6 j0 V* G- d- G) g9 K2 _. d
3、clk1信号用作指令寄存器的时钟信号。2 {, s8 l: p& n5 ^8 {( ^
4、alu_clk则用于触发算术逻辑运算单元(8位)。
& S' z2 E9 V( p- Y2 _2 Y- {9 ~9 N9 t  g/ Y6 z. e0 {! w
按以上要求用verilog写出时钟发生器。/ @% m- Q: b+ {7 Y- A& D- H

# U, p- Q; F% A9 d, Q+ X* I以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} # V8 N+ l5 Z) q2 u/ p$ C- a
module clk_gen(clk,rst,fetch,clk1,alu_clk);
+ X* ?& p! V" O: n! Y; }input clk,rst;* {; ~. ]; A* |$ y) G  s
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址4 X) i) j  t  C9 }
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟
4 ^, ^5 g0 R. m9 X; z; G0 g. s- Goutput alu_clk;          //控制算术逻辑运算单元的时钟) G$ c9 ^- s6 I1 A/ `7 V5 }
reg [2:0] count;
( ]" t4 ]& p2 z$ Lreg fetch;
# f: i* [; ~5 E/ U+ f  {3 Hreg alu_clk;
/ k4 E7 q  j9 p  H$ s/ `9 g//reg [2:0] N;( @1 F. u" }5 E
//reg clk1;3 `3 z! c; E0 D5 q' e  n
assign clk1 = ~clk;       //原输入,原输出7 \5 P9 d! u/ P* Z
parameter N=8;            //对clk进行八分频处理之后赋值给fetch
, i3 q+ i6 x  ~3 Xalways @ (posedge clk)
, L" C+ }2 l9 s7 d+ `' W0 V+ [1 ~        begin6 H5 ^/ r3 N5 Q7 A9 g
                if (rst)/ o$ m2 r: b7 [) E7 G- v
                        begin1 P. ^* R$ n2 Z3 J8 i) g
                                fetch <= 1'b0;        # T3 y; V* g, @1 ]
                                //clk1 <= 1'b0;
8 |0 E: s8 ~, `" t' q) Z                                count <= 1'b0;8 [8 s0 U! z5 D* I
                                alu_clk <= 1'b0;- L; Y+ j" I5 h5 }, d* v
                        end
( B; A) d$ h8 b. S! ]        else if(count<=(N/2-1))
) g% `) g1 p& t) X/ U: ]0 G2 G- l+ ]; j                                count <= count + 1;
5 [0 E* q, X( F6 E8 t, b        else( W. g6 V- a3 V' c
                        begin       
7 x8 z. ?/ K* Q2 R                                count <= 1'b0;, h( g9 V/ j& H8 P- h
                                fetch <= ~clk;$ h5 p5 u- [! _
                        end, y4 P1 x7 I+ Y8 u1 ]. [
        end
9 V1 S! l2 }7 J2 v1 W       
5 ], N2 X& C& }. h. vendmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-24 06:23 , Processed in 0.054519 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表