找回密码
 注册
关于网站域名变更的通知
查看: 1006|回复: 0
打印 上一主题 下一主题

时钟发生器

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1、时钟发生器clkgen利用外来的时钟信号clk生成一系列时钟信号,clk1、fetch、alu_clk,并送往cpu的其他部件。* l" u& q  V' q. A3 d: ]4 j! T
2、其中,fetch是外来时钟clk的8分频信号。7 e4 b/ A5 z' _6 r8 Z$ M8 F
3、clk1信号用作指令寄存器的时钟信号。
& B" ?) x0 H5 ^# ]! F$ ]4、alu_clk则用于触发算术逻辑运算单元(8位)。
, u: P' u4 D: G- ^- q* t5 L0 Y/ L  K) `2 j4 c, P
按以上要求用verilog写出时钟发生器。$ x7 C7 H6 q/ ?; G# E1 g

' b- R& Y* ~+ M9 ]- R. H: `以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} # _% \! |% q+ L  k. H
module clk_gen(clk,rst,fetch,clk1,alu_clk);
, F1 H5 O* C( H* H' |% n+ S2 V" X- G. b% {input clk,rst;) |7 T1 {8 J( c; n3 P6 C& r
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址; W, e% x4 n" F6 {: ]
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟
2 }( ]2 E9 V* V$ loutput alu_clk;          //控制算术逻辑运算单元的时钟9 E. A  K1 x  c/ ?0 H$ k" o1 ]
reg [2:0] count;
% i0 d0 Y3 C) R4 F) lreg fetch;, t' Z% |! E3 b% S+ r  u
reg alu_clk;6 I1 ?3 Y# c) ~  _% e+ o5 I( R' `
//reg [2:0] N;8 a' h" E' `) ]# p* ~
//reg clk1;
  E0 {" n. C2 sassign clk1 = ~clk;       //原输入,原输出
& s, Y: u8 Y- Q" k1 R) Zparameter N=8;            //对clk进行八分频处理之后赋值给fetch7 M6 p# s" m4 T, z2 F; F) t/ [
always @ (posedge clk)
9 o3 s3 c" }4 R5 O( W$ @        begin
4 e( [7 i9 l0 u8 C* k2 H3 ^) _                if (rst)
% k! a3 D! g: p  P! H- a                        begin
+ i; J( _& o' ]- L) X! v                                fetch <= 1'b0;        
, \7 Z  P, F& h* A9 y. N                                //clk1 <= 1'b0;( {! w2 v, h; N0 x
                                count <= 1'b0;  O9 J5 _2 y9 `4 x* |* h# ]2 L1 o6 k5 s
                                alu_clk <= 1'b0;  x1 v7 ?* _: G- i, [0 A9 I
                        end
+ Q8 w7 p6 {! b0 @: F        else if(count<=(N/2-1))
% |5 K" B$ L3 h% Y% p1 f; v                                count <= count + 1;
  b) c5 k0 ]+ t' l, I        else( E* |# G( p4 x
                        begin       
5 [- I: R  B- \$ R7 `* A' _, r1 P                                count <= 1'b0;
  B. d* o) D  c& |                                fetch <= ~clk;4 C1 [2 x: C* W# I1 H
                        end; C8 z4 O6 L$ ]! ]1 Z
        end- J; C: T+ B+ l3 M
        8 y* f0 E  t  A) I% C
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-31 07:15 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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