找回密码
 注册
关于网站域名变更的通知
查看: 3049|回复: 8
打印 上一主题 下一主题

testbench如何产生27MHz的时钟

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-5-9 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 schx 于 2013-5-9 21:38 编辑 & Z: h- r) C& e8 f4 q' \- L

1 ^5 X5 @2 s/ S如题,是不是只能用`timescale然后再always #延迟 clk=~clk 这样来产生呢?有没有其他的办法。; i. U7 W% O5 i- u, _
最近面试一家公司,给我的笔试题中有一道仿真题:用testbench写出以27MHZ时钟时序为基准的10位的随机数串,个数不计,并用modelsim仿真出来。
* K& C: ^; N8 D* @: I- t( n( c0 \6 A8 k, T: C4 W
由于小弟没怎么写过FPGA程序,所以请假版上各位朋友,这道题所谓的10位随机数串是每个时钟周期产生一个bit还是10个bit。。
, v5 `) l5 _5 ]: Z" v
  H5 x0 S7 H9 rreg [9:0] rand_data;
( I- G/ P6 u9 h7 z
& j" f7 n( w8 D/ S* U% brand_data={$random}%1024;
% g+ ?" b  m- y这样可以吗?
% H! i) h& W- ~7 F
* D' C7 a  P4 R$ Y" X小弟电脑上连modelsim都木有装 = =

该用户从未签到

2#
发表于 2013-5-14 21:31 | 只看该作者
本帖最后由 zgq800712 于 2013-5-14 21:32 编辑
0 B; @  ^# t4 {; C' c9 W0 p
% W9 N/ o  N) ``timescale 1ns/1ps
9 L) U! N3 V" L9 S* \% R
6 \" {# e6 M2 A7 B1 }! xmodule fifo_top_tb();
- Z1 T0 _5 P& x    reg clk;
3 y) h$ Z# n5 A: i1 M    reg rst;
- t" V" \3 N3 M, Q    reg wr_en;
5 L3 g5 g, S8 l+ r$ N  c0 ^    reg rd_en;
3 R" n6 b2 u- Q" S    reg [7:0]data_in;
1 g0 Q( _9 M& q( S, q, [    wire [7:0]data_out;
" J# W' S( x8 T* X    7 \; N2 r& U' J
fifo_syn_top myfifo(.clk(clk),0 f4 G% X1 y1 B" G( B( P% V2 `+ F& O
                    .rst(rst),
( h) ]. l. T% e. N9 P/ i: |& \                    .wr_en(wr_en),
! O8 b7 L' g  H8 i/ E                    .rd_en(rd_en),
. ?  d9 @' [5 W: T: c                    .data_in(data_in),) {2 t% v. S; B, m! W; `
                    .data_out(data_out));4 e/ o7 S; p9 x: ]
integer i,j;/ k9 D' [  x/ z4 Z* N
parameter T = 18.518;
, L: |1 p8 w4 ?/ {% j/ s4 oalways
4 a& C2 j! _5 N2 E- lbegin' m! Y. A& }  d  h6 z3 }- L
        clk=0;
$ C; D+ ^) R' f0 `        #T ;) j& E1 H; k4 Y
        clk=1;
0 V  A2 w5 J$ J: }8 ~' y4 Q9 C        #T ;( g1 G! l: l' n* J5 o
end. R; _) B1 g; x  `  Y8 Q

( f* x7 E9 r! `. \  c. ^1 V" E* qinitial1 B2 x$ ?7 u; r, O8 E
  begin& l9 Q: f/ ?, X
    clk=0;4 w! Y7 B2 u: K* C/ P& I  T
    rst=0;
. y; y% k( `$ U4 Z$ I' A    wr_en=1;9 R3 p1 K- A; F" f+ V2 i+ R8 t' r
    rd_en=0;
" h4 G5 X# O! A4 v* A0 m    #20 data_in[7:0]=8'b11111111;% v" z/ Q9 l* D/ \7 z% j, ]1 t
    #200 rst=1;
& Q$ F3 G  x7 z    wr_en=1;
! ]2 k: ^! P$ G( v% N/ C    rd_en=0;/ K1 V1 [& E1 s1 z
     repeat(10)1 r, p% G' a' a7 R# ]
      begin. n+ W$ g7 C, Q) W# ?* p3 |
        #100 data_in[7:0]=$random;          8 [- n/ u5 ?4 g# }1 M
      end
3 K( a( t  V/ h% y) W, b; c, U! `0 F    #6400 wr_en=0;
  {# X3 Y  G- ]2 e1 M    #10 rd_en=1;2 S8 f$ j5 V7 ^! C6 i1 Q5 _2 a
         #6400  $stop;3 g- Q3 N" X+ v/ p9 M0 X0 e
  end* {: z/ ~* f  w  U
  3 o8 V1 S6 V' {$ l' `
endmodule  0 S( q& y$ V& k! ]: S  v
  T' F+ g  \4 }$ ]' i

1 M, A4 P% K+ R# m* Y
/ v9 k/ H: }, O. q+ t, i# B楼主 你难道要 1ns/1fs    ?   这样?) w: j/ A9 u1 f* q4 t

该用户从未签到

3#
 楼主| 发表于 2013-5-16 23:12 | 只看该作者
zgq800712 发表于 2013-5-14 21:31 % W+ h& o/ T3 M: ~, {- d6 U/ U
`timescale 1ns/1ps+ r5 N/ ?, x/ Q( V  S# K% @8 s+ L/ W
: @  Y9 s9 t( R- N5 X
module fifo_top_tb();

# b: U# x3 O5 {9 S1 ]嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来产生时钟的。

该用户从未签到

4#
发表于 2013-5-16 23:21 | 只看该作者
schx 发表于 2013-5-16 23:12
6 r& ]( E) I3 U7 E. g6 F! \: P嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来 ...
. N4 y  s, z1 R+ w& C
我也是菜鸟,多自己看的,现在找到工作了?

该用户从未签到

5#
 楼主| 发表于 2013-5-27 10:00 | 只看该作者
zgq800712 发表于 2013-5-16 23:21 8 o$ s; s' [1 n
我也是菜鸟,多自己看的,现在找到工作了?

- v! [5 z6 @3 b8 A/ X恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。

该用户从未签到

6#
发表于 2013-5-27 15:22 | 只看该作者
schx 发表于 2013-5-27 10:00
$ w0 I8 L- ~8 i- U恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。
6 Q- i% a1 k7 _- w) t' z5 U* J
哈,是FPGA的嘛?

该用户从未签到

7#
 楼主| 发表于 2013-5-27 22:45 | 只看该作者
zgq800712 发表于 2013-5-27 15:22
4 ?* b, s% i, I" q( E' `$ y# ], @哈,是FPGA的嘛?

& C) w% j1 m  P$ R5 o嗯,硬件和fpga都做。

该用户从未签到

8#
发表于 2013-5-28 11:14 | 只看该作者
schx 发表于 2013-5-27 22:45
! ]% ~: U1 N+ B嗯,硬件和fpga都做。
+ M7 E* J2 a0 D. ]/ q, _$ ]& F& |: U
恩,一般不分的公司就是FPGA相关倾向于让硬件工程师做,哈,多看看熟悉下公司产品渠道,客户等。

该用户从未签到

9#
发表于 2013-7-4 13:27 | 只看该作者
没有功能仿真,希望能给你一些参考吧
8 o- ^& l3 V; a; y( W* T`timescale 1ns / 1ps% W# S2 R! m9 N7 Z. F  }

8 h6 c- `; ^+ {module test;, E% @/ @' D1 a% @
: m: x/ Z+ T. F. M/ {1 [! e/ _
parameter CLK_PERIOD = 37.037; //27mhz 对应的时钟周期
8 l9 Q; B: V- x. B. Z5 vreg sys_clk;
1 ]* m, `- P+ |8 rreg reset;
8 J7 o' I/ u. j; O' ]' J. rinitial begin
: `& V! l( h1 a" a! l. ?) m8 h  sys_clk = 0;# K# m/ ~8 j- @6 l0 M
  reset = 0;
) u( k2 z) n" U- {" V6 o  #10 reset = 1;
# G0 Y# R3 H; O& N/ W  #100 reset =0;
# J5 c; J( h/ [0 v4 Uend1 n' Y4 n1 x7 o% b0 f. A% P
// 产生27mhz时钟
+ n7 _3 J& C- i* a) [9 Halways #(CLK_PERIOD/2) sys_clk = ~sysclk;/ q# j5 c6 r8 k4 r5 P$ e# k) A
+ c: _$ s  y2 H5 z
reg [9:0] rand_data;; H/ h2 V7 h8 h# ?9 G6 L1 S% W

* l& J: i3 b$ A0 `" J/ ~  Oalways @ (posedge sys_clk) begin
. U$ ?+ u8 V& d+ a  if(reset)' i. W8 l4 Z/ [6 y+ b
    rand_data <= 0;
( }; q! R8 p# t5 a9 ]/ y, M  else; [5 Y  g' G" u( ]
    rand_data <= $random;5 k. D% f. F4 H' X" m) w  v: Z% y
end
1 R) t9 P1 _: o) |4 i/ P$ zendmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-21 22:45 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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