找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 453|回复: 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的其他部件。" P& }7 g! v9 w  D& b7 l- z& K
2、其中,fetch是外来时钟clk的8分频信号。
! _% v1 o! e  v/ N3、clk1信号用作指令寄存器的时钟信号。3 t. |; B+ c3 j3 l3 M) m# d. B) f
4、alu_clk则用于触发算术逻辑运算单元(8位)。
' K' A: v+ s4 r5 W5 \5 q' b  e- E: \
按以上要求用verilog写出时钟发生器。( C& t6 r$ V1 u+ r% |

+ V( T' k& K' ?; y  d2 B7 d3 `, j以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} 5 N) ^6 f" @. N1 I" k- \+ a
module clk_gen(clk,rst,fetch,clk1,alu_clk);
3 h/ C4 K; `* t( Zinput clk,rst;+ }5 |  D: m" h  y  k% _
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址1 {. B* I* G/ R! T
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟
; A3 q8 ]' M7 ]8 c4 l; B( Eoutput alu_clk;          //控制算术逻辑运算单元的时钟  i4 E0 F# u4 [; x4 l% _' _
reg [2:0] count;
2 W# }. T; L$ o. m0 qreg fetch;
0 j7 @: }4 }. w7 x4 breg alu_clk;- i( k: W- ]: L
//reg [2:0] N;) R# F5 M: ^+ O
//reg clk1;
4 o6 J$ D. E# t$ Y+ K; q* D8 Zassign clk1 = ~clk;       //原输入,原输出, h& T; w, C4 d- V3 H
parameter N=8;            //对clk进行八分频处理之后赋值给fetch
+ E; i5 @8 W7 f5 v0 ?* Halways @ (posedge clk)
3 t, ~2 E3 w1 M6 c6 U  `/ p        begin
, v; E3 r# T- L6 |4 k1 X4 ?9 R                if (rst)& `. i0 w3 H! `9 M/ _" ~% S8 q: p
                        begin8 v9 o: Q4 X% D+ n# Z4 ~
                                fetch <= 1'b0;        9 @! H8 Z2 Z$ |0 C
                                //clk1 <= 1'b0;* A9 V" ]" n+ W8 c/ G
                                count <= 1'b0;( p. |& O9 N- J
                                alu_clk <= 1'b0;0 e: ^3 ]9 a- a! r
                        end( I- e$ T$ f; k" p
        else if(count<=(N/2-1))' l/ Q- F, Z/ l/ H4 E: w6 ?
                                count <= count + 1;: C% R6 _) I2 a) g5 Y
        else
2 }% q/ h  T+ ~2 \  _9 h                        begin       
1 ?7 y' [& M2 H: f: d+ _                                count <= 1'b0;
9 y; w' l: n/ c  S6 O3 G  t                                fetch <= ~clk;' Z, n( u9 o! a6 d0 B
                        end
+ [) E) m  C0 F; M+ L        end
: ^: _6 {/ V& }! O6 o0 y       
5 Y: w  e) R7 z! \' Lendmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:49 , Processed in 0.052342 second(s), 34 queries , Gzip On.

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

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

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