找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 941|回复: 0
打印 上一主题 下一主题

如何写时钟模块才比较规范合理,大侠给个标准模板吧

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
跳转到指定楼层
1#
发表于 2008-5-7 18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何写时钟模块才比较规范合理,大侠给个标准模板吧$ _/ ]) S$ E1 f' I
2 N, i5 e( i0 {9 a# J- a- o
`timescale 10ns / 1ns6 ^( ]% U7 `/ ~. \8 n
module clktest(4 a" ]8 y2 E* W9 Z- E' L7 Q' [
clk,9 M  g( q  v( G- A6 B
reset,9 \- V: P' ^" L5 V  X( u; C
datain,+ B: c5 x% d! P* E4 c
dataout);1 Y9 d3 @  E5 Y# ]
input clk;
0 m/ l4 Z7 ?# Z/ N0 K& d+ o. ~, \ input reset;4 J9 ^5 y+ I1 a5 r
input [3:0]datain;) \& B* [$ d0 r' c: _. @& v$ y
output[3:0]dataout;/ \, o# ~7 r2 b+ b, y* k3 _
wire clk;
& K7 C& j0 r2 G- h( |" f wire reset;; n! q- l1 j, b7 \. p
wire clkout1;
* [7 E: ^' G1 o) y wire clkout2;
2 d$ S$ _1 K' ]; g0 Y( F wire clkout11;
, G/ @+ a6 T- q) w9 _ wire clkout22;
# E# B1 \  i8 `5 r+ Wclkgen clkgen(clk,reset,clkout1,clkout2);
! [0 Z0 J7 Z1 z* w  a: X: e7 \datain_dataout datain_dataout(clkout1,clkout2,reset,datain,dataout);6 }. L) [2 Y) k# d& Z9 k5 ~9 O: R9 @
endmodule
1 L# X' m; S; J. s/ ?/////////////////////////////////////////////////////////////////
1 Q- z5 o$ w. amodule clkgen(clk,reset,clkout1,clkout2);  ~* Z, t; o/ V3 H6 c& O+ [
input clk;. K( b' K( u! f. h- e7 s# {6 i
input reset;
" Q9 K+ V% P2 P# f1 w) ? output clkout1;
. x1 i: B1 {/ Y( b output clkout2;  6 F0 k5 Z- x: n$ ?) o! o
reg [3:0]cnt;
% C6 l. `" q( R2 ? reg clkout11;. p  N) E6 t% H" G; p, X/ I# q
reg clkout22;9 T& a6 O3 H4 l. r
assign clkout1=!clkout11;
. X4 J# Z9 W0 d, \$ V assign clkout2=!clkout22;
; g1 w8 R* k, C2 {* h
9 T+ u) b( |6 d always @(posedge clk)begin
/ k0 |3 O$ H/ C   if(!reset)
. B! l* S* B  o( s    cnt<=0;: q0 Q  v' n! X& t! p
   else
# }1 v) m  {2 e/ X    cnt<=cnt+1;
( N/ b  z4 k( m) t( G4 a. Y& I% H  end
7 U2 k% j- W& ` always @(posedge clk) ) P5 t  v3 K" `
  begin  
' a& R5 _% K) Y* ?# p% M& {   clkout11=~cnt[2];
# C& q; e2 [+ Q  g$ Z4 _3 k+ @   clkout22=~cnt[3];
; H6 O; u. T# G/ Y   end. n8 I; U% S6 ^  \) J% M3 h
endmodule1 G, S3 R8 l+ ]. S1 d0 [
////////////////////////////////////////////////////////
, h: r) A( t6 S9 T/ I' t/ Vmodule datain_dataout(clkout1,clkout2,reset,datain,dataout);% N& @* N: y) S, Q$ H
input clkout1;: T+ L% h+ B/ H  w, j$ n
input clkout2;4 T2 g( U1 O% z" u
input reset;
; x8 w) t; w& t  J- Q; z3 Y( w input [3:0]datain;
2 q% z4 P* T( M" M output [3:0]dataout;
: J8 {6 R* S, s2 D! g  Q) T: N' _ reg [3:0]datatemp; 4 Z2 G* O; {- a7 I& ^& D. ]
reg [3:0]dataout; ! Y7 v; w* f) R# b/ ~
reg [3:0]cntt;) Q" Y% k! A' s$ l! d) @3 P9 l
always @(posedge clkout2)begin
  i' l7 x, X" l$ w6 {. i   if(!reset)
7 `8 P: O0 E7 B+ l% z7 {' R    cntt<=0;
2 x# C  g  M' |6 E; l. V  n   else6 ~5 [' S1 S, O1 O, [9 V
    cntt<=cntt+1;
# i$ c9 l2 S+ |  end
& L' y/ @! x, T7 {; J( n- @- @
- n% Z* z6 D* d# D5 h always @(posedge clkout1)begin 4 ]- c# i0 w6 h. }/ W" m
   if(!reset)- @1 T) r. W+ J) c4 v9 U
    datatemp<=0;% H# d9 v: z7 S: l
   else* b% S8 j0 d& Y' q/ D0 U. d/ o
    datatemp<=datain; 5 e$ c! K& M, F: ]& z
  end3 p6 Y9 d2 `9 w  I# e
always @(posedge clkout1)begin
$ t$ T; q) N+ G$ R( s   if(!reset)
, t/ H! V. A3 {! Q( {( ^    dataout<=0;: D6 o8 G+ P( H5 p3 ]( y0 j
   else
6 l$ ]: i; R( N. p) e# L3 f! _2 K    dataout<=datatemp; 6 X  x  b  b' T0 v" k$ [. e' {
  end2 R2 A- Y2 F0 z; w" w* p
, j8 x: ~# P' z  V. L
endmodule2 C1 ]. R; m+ e* x" |; P- Z
////////////////////////////////////////////////
3 n0 u: j; u; u' N- K9 k! ^8 m提示下面的警告:
0 W$ B" y! ?& }2 d3 [- b7 |clkgen.v(14): clock signal should not be driven (gated) by inverted logic (clock: "clkout1" (datain_dataout.v(28)); inverted logic output: "clkout1")
, o/ {# f0 g$ i) K; ^0 c4 J) s. ]2 Y- u4 b5 L5 c

  ~$ A0 F0 y+ Bclkgen.v(14): clock signal should not be driven by logic which is not in clock_gen module (clock: "clkout1" (datain_dataout.v(22)); driving logic output: "clkout1")
; ^- a9 z, `! f3 t! b& M& d
* R( M/ h2 a" t; b: Mclkgen.v(25): BLOCKING assignment should not be used in an edge triggered block
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-4-18 23:54 , Processed in 0.053740 second(s), 32 queries , Gzip On.

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

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

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