EDA365电子工程师网

标题: 时钟发生器 [打印本页]

作者: 微笑的记忆    时间: 2012-9-21 16:20
标题: 时钟发生器
1、时钟发生器clkgen利用外来的时钟信号clk生成一系列时钟信号,clk1、fetch、alu_clk,并送往cpu的其他部件。" E% H8 D* L* c# J) F
2、其中,fetch是外来时钟clk的8分频信号。
, F/ u  f( L3 x( F3、clk1信号用作指令寄存器的时钟信号。' A. Z) d/ L  W# P, W% t# K( ]
4、alu_clk则用于触发算术逻辑运算单元(8位)。9 l8 g. F: k  H! n8 |' b8 }
2 M/ j4 w$ Q. U# z" M5 x
按以上要求用verilog写出时钟发生器。$ m' I& V$ G0 c  f* b" ]# X

% _7 ]( y5 o% Z  z9 ?以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:}
6 M9 P9 `! i5 o9 ^' Wmodule clk_gen(clk,rst,fetch,clk1,alu_clk);# L* y4 i4 y7 }" K0 n
input clk,rst;. _( T1 o" Y  a* x
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址9 h  d0 [5 R! ]4 Y- r- Q
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟7 w9 j0 ^: n0 W! Y* }6 K
output alu_clk;          //控制算术逻辑运算单元的时钟
! w6 f  e; `- y% q! T1 Wreg [2:0] count;! F# a9 y! D9 l" R2 U% R
reg fetch;
! I% o/ a  r- o" R' b* ~* k  L6 x; {reg alu_clk;7 y( H* |8 C" i# S9 w( `# h
//reg [2:0] N;% T3 N) U' i$ a/ a& }
//reg clk1;$ H- g6 [' F4 c: y
assign clk1 = ~clk;       //原输入,原输出; ]( r8 N$ U2 \/ i8 J  h
parameter N=8;            //对clk进行八分频处理之后赋值给fetch2 s" y( V/ f  {2 {2 D
always @ (posedge clk)
8 S& l7 ]* h/ ?2 b: f5 C7 D        begin8 Q0 `' @2 o1 Q4 f0 d% I
                if (rst)
! U( d: `  H. \  ]4 x* w# Y                        begin
- A* e1 ~) r( B6 Q# _4 N! m7 z$ p                                fetch <= 1'b0;        
4 m4 E9 a' v7 |9 Q9 n; r/ @                                //clk1 <= 1'b0;
) }. A8 ~1 o) p7 H2 i: d                                count <= 1'b0;
. l# o& Z7 T" ~8 ]4 b  E; ?                                alu_clk <= 1'b0;% c$ Z' w" _" x, n* i2 P
                        end8 r2 L$ z( Q8 C5 E" G2 _
        else if(count<=(N/2-1))
, S. b6 \6 T/ ?6 ^6 T                                count <= count + 1;
8 z# ~8 l8 c' `+ q: r6 O- R5 k8 y        else
1 P$ k2 |$ F/ r2 D. p                        begin       
, ^) s( _4 A5 E- l% A/ I) v- K, A                                count <= 1'b0;; R$ j' g' y; r9 d3 s
                                fetch <= ~clk;
; [+ {/ S1 o! B+ j" D7 q                        end9 Q/ {0 |+ v4 @; Z/ I0 C- L
        end9 }& S" @4 T2 W% U- y" ]/ C, H
       
( i; @  d4 I6 zendmodule




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2