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

时钟发生器

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1、时钟发生器clkgen利用外来的时钟信号clk生成一系列时钟信号,clk1、fetch、alu_clk,并送往cpu的其他部件。2 \6 C8 Z4 v% u: h! p+ w4 z# N0 u
2、其中,fetch是外来时钟clk的8分频信号。
( C, j7 h3 a$ B/ S! D0 ?' K3、clk1信号用作指令寄存器的时钟信号。5 M$ S& b- t2 v7 x
4、alu_clk则用于触发算术逻辑运算单元(8位)。; M1 I% b( o) M, `& ]
/ e9 u& }# @6 o# J9 _/ T/ e
按以上要求用verilog写出时钟发生器。- t  O9 m1 M1 F' c- k
# D# |9 G# C/ N+ O/ w
以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} % y0 w  s+ W* M/ B% P, n
module clk_gen(clk,rst,fetch,clk1,alu_clk);
2 S+ a4 x- K0 x- j0 Linput clk,rst;3 _, I1 Z; I0 ?1 ?
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址4 B6 Q  W+ |6 M5 ]2 S
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟
: k0 O" C. s" {output alu_clk;          //控制算术逻辑运算单元的时钟
" T3 x8 k7 ^2 q5 K$ [+ U* {reg [2:0] count;2 r! I' J5 F- m; q/ K6 _. e
reg fetch;
- h! H- [2 ^- p. A% W' Wreg alu_clk;9 F# y4 i# z" _" ~9 |
//reg [2:0] N;
3 |. |7 ?% ~- }- r//reg clk1;
  ]( k2 {1 |# N7 l7 G, x' vassign clk1 = ~clk;       //原输入,原输出
, U$ h3 x& I( w1 Mparameter N=8;            //对clk进行八分频处理之后赋值给fetch. d+ R3 ]1 L  k" C$ z7 s
always @ (posedge clk); ?0 G. K! |) {
        begin
+ m5 g3 N+ \' m9 n$ d; v                if (rst)
2 U9 w; J8 c/ t! ^                        begin
1 I- [0 ?  |0 \2 j                                fetch <= 1'b0;        
" H4 Y  R9 J  {8 [% k+ P& h                                //clk1 <= 1'b0;
2 T" j8 L$ [" k# c                                count <= 1'b0;
4 L) G3 |& \9 }  @# m                                alu_clk <= 1'b0;+ B$ o4 [; z. B6 [) R& ~
                        end9 n6 q* D; j* b1 ~6 \" X7 ]2 ^
        else if(count<=(N/2-1))
6 X2 y$ T  Y& j8 {) A9 ~8 c' q                                count <= count + 1;
+ b! w- ?" v& Z5 C$ _( z- u        else0 |3 E2 q% W: D: j. T$ k
                        begin        4 m) M4 q/ Z- t; B( i
                                count <= 1'b0;
! ^5 ?% u5 x0 _' a. o$ }& ~, c                                fetch <= ~clk;
! G% [) Z6 P! x  d+ Z8 Q* e                        end4 f0 T  }) `8 F  \
        end( j% a. P1 M! d
       
* p" `- f  R5 Q( ^! D# Hendmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 12:24 , Processed in 0.109375 second(s), 25 queries , Gzip On.

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

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

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