找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

电巢直播8月计划
查看: 455|回复: 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的其他部件。1 S8 R0 e- ?9 |; d1 D* A
2、其中,fetch是外来时钟clk的8分频信号。
2 Q' _  D8 h3 a6 y9 F! n3、clk1信号用作指令寄存器的时钟信号。
* r  J, X! I2 ?+ T! S- J4、alu_clk则用于触发算术逻辑运算单元(8位)。
) l# n: k  ^/ a& u. n6 Y! o  F7 u" f+ L0 Y- {
按以上要求用verilog写出时钟发生器。
# C: v: f6 C; ~( L1 X4 k
$ ~* U9 ^( h4 {以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} . p5 k$ |1 j% Z& v0 f) G0 |5 L2 v
module clk_gen(clk,rst,fetch,clk1,alu_clk);2 U/ A: H) k- g  }. m
input clk,rst;
3 G$ v0 a% `, F/ \" I! Koutput fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址: [) f' x% w0 p) c; M- A5 `) K
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟
+ Y% B2 K( n) Y; ?* W" c1 aoutput alu_clk;          //控制算术逻辑运算单元的时钟
+ a$ O7 R, u5 h% F7 {, o3 lreg [2:0] count;# z3 z: g) t# K, z) s: n+ ]( S- {
reg fetch;0 |& N9 g7 c3 ]1 F' ^$ f/ e  n- z7 y
reg alu_clk;
/ ~3 I) s' G& N//reg [2:0] N;
! D; `/ m9 m8 h/ V//reg clk1;
7 P5 e6 h% s% B4 U6 ^  z' bassign clk1 = ~clk;       //原输入,原输出9 i- Y8 M; Y4 c5 @; K8 ~; J% P% _
parameter N=8;            //对clk进行八分频处理之后赋值给fetch
: C3 }) w+ h$ K$ t% [always @ (posedge clk)
: n  N  B& e7 {# s+ Y8 B% i$ n        begin! p: Z; r8 _3 S& H* ]0 O7 t
                if (rst)
& Q0 J, j0 S/ r& N# ~                        begin
' b1 O# p  E2 g% }6 |, _                                fetch <= 1'b0;          g! @' q. H, R3 k0 @  [1 s
                                //clk1 <= 1'b0;5 m1 O& C+ V( H( ?' m
                                count <= 1'b0;
4 R, w1 L' l/ ~; O6 T: s" ^                                alu_clk <= 1'b0;
9 n) }6 O8 l# ^8 l7 \- e                        end
* W) F2 w2 c: ]( C: ?        else if(count<=(N/2-1))
3 ~, Z1 h( t& c' _5 v. j/ Y8 Y                                count <= count + 1;0 X5 B$ u( v; x5 C9 B8 d, E
        else
' M. W6 [/ [: U5 R: `                        begin        + K2 j3 T: i8 Z) {/ t& ?  R
                                count <= 1'b0;
6 E) O! C' ?1 R. L! H# H                                fetch <= ~clk;2 ~. g1 w: w5 A$ ]$ V1 A0 [
                        end* \) P* P% E6 @+ z, A( S
        end1 c+ g6 ?! d& }9 T. c( P( {
        & O+ y# f. @7 O% Z) A2 V% Y
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

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

GMT+8, 2025-7-1 04:17 , Processed in 0.057002 second(s), 32 queries , Gzip On.

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

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

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