找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

电巢直播8月计划
查看: 454|回复: 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的其他部件。
2 C- g: k  x8 ?. [1 o2、其中,fetch是外来时钟clk的8分频信号。
9 j4 p, s' F( r. d* `' I3、clk1信号用作指令寄存器的时钟信号。9 ?" b* g; Y+ b7 b
4、alu_clk则用于触发算术逻辑运算单元(8位)。& U( ~* ?  S2 k4 O* L1 w# a
$ A$ L4 N; x! ~, F  }5 t
按以上要求用verilog写出时钟发生器。( h& s' F2 a! {8 Z: R+ ]6 U

* E6 J  y2 a3 q3 }以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} 4 H; H9 p+ ?  ~% s
module clk_gen(clk,rst,fetch,clk1,alu_clk);
6 E9 p" [" P5 i0 Oinput clk,rst;. W! d- X* h6 a+ C% F7 J4 P! u: R
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址
% A4 J+ b7 L9 d9 P; y" N* @output clk1;             //控制指令寄存器,累加器,状态控制器的时钟) r) q& V. G! L+ Z# l" `
output alu_clk;          //控制算术逻辑运算单元的时钟! _" [9 I& C$ m/ a8 P% E. L
reg [2:0] count;
6 d* t/ o, J- V% c. v& Q- A) t  s6 Zreg fetch;% ]* [  _5 _) t1 }# q
reg alu_clk;% j: s- x# L% l' a
//reg [2:0] N;% K1 V" A8 d/ {- K3 p6 b3 i
//reg clk1;. L  F  I% k: ^& Q- ]# j/ t3 B' W7 X
assign clk1 = ~clk;       //原输入,原输出' q: p* D2 k0 U5 H$ d. V
parameter N=8;            //对clk进行八分频处理之后赋值给fetch
% h8 s- l) T' M6 t# Z6 h" h+ Aalways @ (posedge clk)+ Y( |" A3 o  k
        begin( a1 }6 F! d# L: }% ]: ]4 l/ b
                if (rst)) ]$ f& I2 C2 @. i3 W4 o4 {
                        begin3 @! Q6 f1 i5 k: ]8 O, Y# e
                                fetch <= 1'b0;        & V, a3 m" l2 y* q( r( q
                                //clk1 <= 1'b0;
+ k& [# }# I0 N3 H  L                                count <= 1'b0;3 m' K- t  S3 ~6 ^% G/ m
                                alu_clk <= 1'b0;
: ?! ^! T$ X1 s/ w9 `2 n: i                        end
' H- T' `! T/ V        else if(count<=(N/2-1))
2 l2 ]* `1 C# J2 h. N0 ]: @                                count <= count + 1;$ |- g2 W8 Q' J5 {4 e8 r
        else+ W( b) L$ n& M- @+ C- O1 @# q' T
                        begin        ! F' K! `  e8 y9 e0 J
                                count <= 1'b0;
4 a4 {! \% ]& b  a                                fetch <= ~clk;
, B/ h: y3 I! C                        end+ ~* C- S' J" B& p# |5 V6 r
        end! Y9 |* P- Q9 j# V$ E
       
) J0 m2 m" @0 y6 t6 l8 Lendmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

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

GMT+8, 2025-7-1 03:47 , Processed in 0.052795 second(s), 32 queries , Gzip On.

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

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

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