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

testbench如何产生27MHz的时钟

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 schx 于 2013-5-9 21:38 编辑
+ c0 B: \, F; n2 H; k% k. K5 i3 O( b- d: g' f1 @, a
如题,是不是只能用`timescale然后再always #延迟 clk=~clk 这样来产生呢?有没有其他的办法。
' v3 N; z5 P. ^0 Q6 H最近面试一家公司,给我的笔试题中有一道仿真题:用testbench写出以27MHZ时钟时序为基准的10位的随机数串,个数不计,并用modelsim仿真出来。) ~9 v( N9 l- y& e

5 X/ {, U8 C2 Y% E, M+ N由于小弟没怎么写过FPGA程序,所以请假版上各位朋友,这道题所谓的10位随机数串是每个时钟周期产生一个bit还是10个bit。。
+ H8 p, f: Q  u+ g: N  [' [$ v0 |) @6 G' @
reg [9:0] rand_data;/ e2 W4 Q; _5 m) M- x/ \! H0 V

7 `" a, m; m1 mrand_data={$random}%1024;1 g- W: [4 r- y* {+ N. g+ L! U% T' y
这样可以吗?" i5 k* l% Z8 Y  Z% ]
: U2 j4 `7 |" J
小弟电脑上连modelsim都木有装 = =

该用户从未签到

2#
发表于 2013-5-14 21:31 | 只看该作者
本帖最后由 zgq800712 于 2013-5-14 21:32 编辑 8 C" }; ]9 I$ K% P5 M- |

7 D0 |/ S% m& ]2 F. r6 W`timescale 1ns/1ps! }$ l: ~4 @* I* \. m/ Z

4 [# ~8 n9 j" }, _' P& l# [! _module fifo_top_tb();; G! u  ^/ j! y3 w$ m& B
    reg clk;
' w: E# g( `& z0 y0 \    reg rst;
; f% |* X1 J# J7 {6 U3 H    reg wr_en;
  A2 x& @, N5 d& ^    reg rd_en;8 }& Y2 F1 k. C# v
    reg [7:0]data_in;
0 V& l7 S) Z6 d2 Z9 @/ _4 G. ]    wire [7:0]data_out;
/ r: X0 F( s8 R& D% ^$ y8 ^, S6 \    * u& _( p4 i4 k( ?8 U
fifo_syn_top myfifo(.clk(clk),0 \6 v  Q" h; k" S; Q9 ]
                    .rst(rst),
) o" F+ I( D6 }9 M" G- i2 f3 x: o                    .wr_en(wr_en),
+ U9 b% p9 v& V' C4 M                    .rd_en(rd_en),8 S0 J5 x  P' `
                    .data_in(data_in),
. X. }! `) V4 o0 l                    .data_out(data_out));% V7 q" @1 V0 c# Z
integer i,j;
9 M- J1 K$ i8 u2 J( J  t. L0 Gparameter T = 18.518;( o7 q; d7 i8 ^5 E! t. K
always
1 r  B: |) j$ }1 {2 hbegin
1 S; y% v  G: g# t  V) O0 U6 e! Q        clk=0;
7 N6 r2 w4 ]8 j  x. o  ^        #T ;
. S) I3 E% `! [( P! E: H& G" e) X        clk=1;7 L, ~* j" Z( Y6 g) M5 K
        #T ;+ S, j$ L% _; G5 D9 w
end5 i3 C& }5 l# c6 b! P

# f$ K- i( R; C! \9 xinitial) ~" ]/ h, b5 [. D
  begin* \( M/ U2 M5 @* {4 P9 t0 @
    clk=0;0 ]$ ~3 w4 L. |( C
    rst=0;: |3 [$ Y6 ~' T% w0 I# _5 A6 [
    wr_en=1;
$ i$ @. n; C2 {, U" [    rd_en=0;, y6 i; v! m/ `. m
    #20 data_in[7:0]=8'b11111111;
" N* M8 p3 p( J/ g5 G    #200 rst=1;
# `' w. [( T3 {8 a    wr_en=1;0 C" k' }/ U0 [4 ?! z
    rd_en=0;, L! T- s2 b7 V$ u
     repeat(10)0 b* {4 H% B5 n
      begin- s! x& k  p( U. V5 I+ c
        #100 data_in[7:0]=$random;          2 Y1 l1 u" Q4 X. J3 w7 M! D8 O
      end
5 v$ \, \4 v" j    #6400 wr_en=0;
. [* u' _. ]! X  U7 |7 S* h" I    #10 rd_en=1;
0 S: _3 j+ [% a) W         #6400  $stop;( ]* n4 b1 r! y; J+ {$ l: u$ ^- c
  end
9 p1 _- k" r" ?/ K# {  9 o2 R4 P: o- V( Q* t
endmodule  
6 J7 \" L% u( \" m8 h7 y* ^, r) c- `
5 l" h( [- y* h- A- a0 o/ G0 @+ D/ w$ _
+ e/ l0 O5 ^4 a1 a3 E3 W; z
楼主 你难道要 1ns/1fs    ?   这样?
, v9 N4 c4 ~. @

该用户从未签到

3#
 楼主| 发表于 2013-5-16 23:12 | 只看该作者
zgq800712 发表于 2013-5-14 21:31
/ @; m# a& h7 @  v: Y. p( Q`timescale 1ns/1ps
/ L4 w' G1 d2 H$ T$ [% m
+ w) P! m' ^; t/ Jmodule fifo_top_tb();

/ V' P$ h; h+ x: `嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来产生时钟的。

该用户从未签到

4#
发表于 2013-5-16 23:21 | 只看该作者
schx 发表于 2013-5-16 23:12
6 U7 q: @9 q0 L嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来 ...
4 I5 v8 R1 \0 E2 {  L2 ~& |
我也是菜鸟,多自己看的,现在找到工作了?

该用户从未签到

5#
 楼主| 发表于 2013-5-27 10:00 | 只看该作者
zgq800712 发表于 2013-5-16 23:21 # Y, Q+ C: L+ {6 G/ _
我也是菜鸟,多自己看的,现在找到工作了?

/ N( x& x. g' R* @/ x; _' O恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。

该用户从未签到

6#
发表于 2013-5-27 15:22 | 只看该作者
schx 发表于 2013-5-27 10:00
9 l7 a- n" {, s恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。
  W$ N9 r9 ^( g6 m
哈,是FPGA的嘛?

该用户从未签到

7#
 楼主| 发表于 2013-5-27 22:45 | 只看该作者
zgq800712 发表于 2013-5-27 15:22 , p  T7 B3 L1 d8 U, |- ^
哈,是FPGA的嘛?

3 R7 e4 @; R, }3 n9 x嗯,硬件和fpga都做。

该用户从未签到

8#
发表于 2013-5-28 11:14 | 只看该作者
schx 发表于 2013-5-27 22:45 ( e8 G* i- r0 P9 H9 M
嗯,硬件和fpga都做。

2 I" W6 _1 w) s7 n( J, B/ D恩,一般不分的公司就是FPGA相关倾向于让硬件工程师做,哈,多看看熟悉下公司产品渠道,客户等。

该用户从未签到

9#
发表于 2013-7-4 13:27 | 只看该作者
没有功能仿真,希望能给你一些参考吧0 M, C( i0 c  G. M
`timescale 1ns / 1ps5 I  P0 O/ m# O+ `  U  s7 R# @

6 R. O% B9 B4 {7 ^" }module test;4 b, r. {+ t0 x
! \. E3 X7 Y! r+ T3 ~
parameter CLK_PERIOD = 37.037; //27mhz 对应的时钟周期
" y" ?* F6 I5 A( r+ |reg sys_clk;
. f! `2 B) T5 M3 y' f1 m1 Ireg reset;
! N: _+ [; p0 P3 U* k2 }7 @  Finitial begin+ ~5 W9 C, G; [* a6 f& _( f1 q4 O
  sys_clk = 0;
% K- L, L3 `& l" r  reset = 0;
4 R# I+ m$ t1 \) k; S  #10 reset = 1;' A# c7 W/ F2 Y2 M$ ?8 }; f
  #100 reset =0;
" j9 t/ g/ C+ ]6 V6 Iend
5 L" Z+ L) E8 i$ Z) X& D// 产生27mhz时钟& V: L8 b; x3 H2 J: g) b
always #(CLK_PERIOD/2) sys_clk = ~sysclk;7 B+ n2 v2 w( E! Y) j! e
( {! @7 I9 i8 _+ k, ?; `! _
reg [9:0] rand_data;5 U9 E* R& P" R: R) v& i8 P3 P

8 z% \% m+ N1 p, Z  galways @ (posedge sys_clk) begin& f/ A) o) G  |" ?7 i: H
  if(reset)
" A. @, `9 h1 M' m    rand_data <= 0;3 U5 \- ]' p3 U4 U8 G- d
  else. v& A- j; l7 k* X
    rand_data <= $random;- K1 s2 m6 b6 \7 h6 E
end5 B9 k2 `8 X' V
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 07:15 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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