找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 450|回复: 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的其他部件。: h' y( E" B: W; ^+ c6 T' i" @
2、其中,fetch是外来时钟clk的8分频信号。
/ V+ |; i2 f) X8 ?6 R3、clk1信号用作指令寄存器的时钟信号。
) _* G) K1 y  V8 A4 k4、alu_clk则用于触发算术逻辑运算单元(8位)。" O  J9 ]# O; E7 R, a

( |3 g/ j& E: w7 ^5 y按以上要求用verilog写出时钟发生器。: I6 g. ~5 E. g! w0 v9 c

/ Z7 u5 J! G) s+ N以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:} . A! m) B2 R9 S& f- O5 D7 u& u
module clk_gen(clk,rst,fetch,clk1,alu_clk);7 U/ s. n9 e$ k. V$ K. c3 \6 f$ @' |
input clk,rst;
4 a: d4 A! z+ M+ w2 N- u6 U% t; Doutput fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址( R8 E% ~: s8 j1 b. u
output clk1;             //控制指令寄存器,累加器,状态控制器的时钟! n! N* e9 k  }4 I( N5 X
output alu_clk;          //控制算术逻辑运算单元的时钟
- f- O0 d! V! k+ M) P! yreg [2:0] count;* n2 `: ?7 a" n$ _
reg fetch;! U3 [# A- S# h" l* @, @! Q/ `; U+ q) F/ Y  o
reg alu_clk;
% F. @8 q' {4 r, c+ }7 v" a4 r' A8 F//reg [2:0] N;6 H: r& t4 S7 i5 |4 i% j2 ?' [
//reg clk1;& r! C  N& v* E5 U8 N% N
assign clk1 = ~clk;       //原输入,原输出
& A6 J% _% P4 rparameter N=8;            //对clk进行八分频处理之后赋值给fetch
! H  G; Z- S% N$ H& Galways @ (posedge clk)- f" B2 j0 k  }9 d  b
        begin3 x) Y- y" J" a& Y
                if (rst)0 l8 G5 q% m* {0 T
                        begin
. h% s8 L: a8 g                                fetch <= 1'b0;        , p7 j3 J) Z% o4 _
                                //clk1 <= 1'b0;9 o7 i$ d" U, @& m8 g8 u
                                count <= 1'b0;
) s( I0 y6 d3 E                                alu_clk <= 1'b0;
( t0 A' t8 X' i* I$ P6 S' P( U/ P! u* `                        end
7 c6 r2 O# m& x9 i! l1 k        else if(count<=(N/2-1))0 {* o$ g9 Q  G8 Y" y
                                count <= count + 1;' e8 h6 H3 ]9 u6 l- i
        else
8 }8 l' B( c& P+ h( h, z' u                        begin       
4 B+ C  d" ~! g$ w                                count <= 1'b0;( Y5 v3 u$ G. R
                                fetch <= ~clk;
/ I* ]5 |0 o3 J, J                        end7 O8 A5 t1 q7 o: j  a% w
        end: g. C1 T2 s1 X3 ~* J5 x
        5 s4 G3 |3 K: Z# {( f
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 11:25 , Processed in 0.054723 second(s), 34 queries , Gzip On.

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

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

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