找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 452|回复: 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的其他部件。, A% B, R$ o' ~3 c9 _" x/ Z- a: p' e7 M
2、其中,fetch是外来时钟clk的8分频信号。2 Q" H9 h$ N* h# O3 s+ a9 i
3、clk1信号用作指令寄存器的时钟信号。5 r" a" ?: l' J" Q/ a. {
4、alu_clk则用于触发算术逻辑运算单元(8位)。  s. W( O3 l" z$ |' g* H% D
5 ^8 \, e3 R0 j. {1 k
按以上要求用verilog写出时钟发生器。
, V% ]" |9 Z2 Q* f
0 U  I8 P5 T6 }7 @以下是我写的,但是呢,其中的alu_clk不知道要怎么写。请教大神,还有,如果代码写的不是很规范,写的不是很简洁,请帮改下,或许你的一句话就会帮我打开一扇窗户,让我更加了解verilog。谢谢!{:soso__187047450382421961_3:}
+ c% y  V4 k* a  `. N- Cmodule clk_gen(clk,rst,fetch,clk1,alu_clk);
# S+ L4 _6 Q4 B, M- J4 Dinput clk,rst;0 h$ V7 L0 g0 \0 _+ k4 H
output fetch;            //clk的8分频,用来控制地址多路器,输出指令地址与数据地址
6 Y& s( m5 s) V, Q6 _6 v' Routput clk1;             //控制指令寄存器,累加器,状态控制器的时钟
5 |4 q4 [, b6 z) t5 k/ |; k/ koutput alu_clk;          //控制算术逻辑运算单元的时钟; }/ B/ x# ]" M1 T7 v! d9 |
reg [2:0] count;
2 h, ~4 \- |' i* breg fetch;
+ ~; ^! D$ p+ p7 Xreg alu_clk;3 L; C% P! V1 n
//reg [2:0] N;
+ B2 f( K' F- Y& z2 r2 {$ ^//reg clk1;( L# Q7 W. i$ U$ x; d0 F6 C
assign clk1 = ~clk;       //原输入,原输出
: ]. W2 ?# x( ^' q# g9 C* e- C. F4 ?parameter N=8;            //对clk进行八分频处理之后赋值给fetch+ f' r4 o0 }: R. s! b* N! e" |  h
always @ (posedge clk)
1 D6 y3 O' ?5 k8 x* J        begin
3 m1 _* c8 z, a6 y' e7 j                if (rst)! H- D; g/ e# }% J) l- F
                        begin
3 D* S$ G9 l3 j: x9 W" [, u                                fetch <= 1'b0;        
( d$ M, H' A' t) W5 Y                                //clk1 <= 1'b0;3 N3 m6 o! x- F8 z# T
                                count <= 1'b0;
0 m" A8 [7 ^, U& n8 a                                alu_clk <= 1'b0;
2 s( }" c4 w/ i, |                        end
' T9 n3 ~1 n! `- J( H! k        else if(count<=(N/2-1))
  x) h3 O/ r2 h# F% d' h                                count <= count + 1;, `( G& @6 @7 _' \
        else  i7 {0 Y5 e) n, W. R: P1 P
                        begin        $ m2 H9 t1 y  ]( l; i
                                count <= 1'b0;' t& G6 Y5 q: S# a/ m5 t
                                fetch <= ~clk;6 j7 I- N& @% Z1 Z" x: j
                        end
3 J0 E* `" n* j" t  \2 l+ ]        end. j' X/ L3 M/ k+ {
       
) @! ?5 C6 H: pendmodule
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-28 05:03 , Processed in 0.054226 second(s), 33 queries , Gzip On.

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

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

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