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

testbench如何产生27MHz的时钟

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 schx 于 2013-5-9 21:38 编辑
$ c# S% ~: K8 k. ]( h% }. q" x/ l: |" g* H6 a0 q
如题,是不是只能用`timescale然后再always #延迟 clk=~clk 这样来产生呢?有没有其他的办法。
; r" O3 f& {- ^  e  U3 n! O- I最近面试一家公司,给我的笔试题中有一道仿真题:用testbench写出以27MHZ时钟时序为基准的10位的随机数串,个数不计,并用modelsim仿真出来。, P" F4 @5 y- S0 ]
; r5 m' E- E% p5 D/ i
由于小弟没怎么写过FPGA程序,所以请假版上各位朋友,这道题所谓的10位随机数串是每个时钟周期产生一个bit还是10个bit。。
, j; V' a; ?/ U) k4 S$ W
4 {- R4 o6 G2 T% Ureg [9:0] rand_data;
- G& g3 U: ~$ l) k  n8 q+ {) x
; I2 Y! y' W0 o, s$ E$ _5 g' o& prand_data={$random}%1024;
( i6 |0 l. m3 d! {这样可以吗?  R. u* d7 n. u9 p/ Z& V- g4 ?' o/ ~
& Q4 ?0 K% Y5 P6 K, {& C7 E, }
小弟电脑上连modelsim都木有装 = =

该用户从未签到

2#
发表于 2013-5-14 21:31 | 只看该作者
本帖最后由 zgq800712 于 2013-5-14 21:32 编辑
; P- N5 Z. L, u5 R' C3 k
$ f3 e& T( }% T0 S( W& p`timescale 1ns/1ps: {1 q. K: ]$ o5 C! b" S& Z
1 k1 h0 a; ~8 n1 F- ^
module fifo_top_tb();
- {0 h5 ~1 y+ u7 h    reg clk;  V, O, }5 ]4 \/ R
    reg rst;: N& |5 @7 G  n! T
    reg wr_en;
; Q; X. d3 Z4 F. K8 u    reg rd_en;9 e4 Z# v  I. A8 H
    reg [7:0]data_in;
; w' s( I9 k+ a3 K: Q    wire [7:0]data_out;
' c4 G" z1 j/ T2 y) U/ e* W    7 {5 T# z  Z# f7 T4 N* l0 V
fifo_syn_top myfifo(.clk(clk),
) l2 P$ o  O+ W) a8 ]                    .rst(rst),( o; G# _2 ?% D6 Z9 H
                    .wr_en(wr_en),4 l  W& M5 Q' f& p$ R; F- ?
                    .rd_en(rd_en),
% ^) Q9 B% L  q                    .data_in(data_in),) E; i# F( }# D' [& X
                    .data_out(data_out));2 g  C; W" V6 A; K" x
integer i,j;: y0 O; O5 v) y
parameter T = 18.518;
) X4 N* T1 L  m$ {6 malways
& \. b; x: |$ m8 q! M1 Obegin
+ Y+ q! d% p; F/ n5 y* \$ \5 W        clk=0;
( e4 ], r) ^+ v0 j0 G; X' }" a        #T ;
% E: d# r4 T6 u* C# E        clk=1;
! C4 v; @8 b2 S! M2 ~1 U        #T ;  |4 L7 {1 u: S! _4 Y. G  `' z* V
end
' s3 H* E  v7 w, N; M4 Z  C7 R* i! x( {% L/ t
initial
: Q4 k* g3 }- g! Y% J  begin+ H) F+ [: F8 U
    clk=0;6 u" \; S1 v1 J  J( p
    rst=0;
% A; I: F; P* {3 Z& E    wr_en=1;7 r4 O+ i# V) C' o  H* ]- T# S3 X0 m
    rd_en=0;0 V: f4 H8 i3 R
    #20 data_in[7:0]=8'b11111111;8 R/ J* t/ _) ]: R: C+ u! D; |
    #200 rst=1;
2 a9 d3 D! B4 r1 R1 t    wr_en=1;
4 r$ M0 l7 _7 I0 Q    rd_en=0;- U6 M9 f2 N: p5 m
     repeat(10)
& k, U: A; z3 C      begin
3 k* q* U  W' A) x        #100 data_in[7:0]=$random;          
5 h. J* ?$ p3 U2 d& q$ |/ T      end! N2 z- v6 e" t4 m' @
    #6400 wr_en=0;
; H0 G: a* m7 ~9 M    #10 rd_en=1;$ ^, ~$ l" M- @7 @1 h% }% C
         #6400  $stop;
6 f% w5 T1 S4 a" ?  end
  G" A0 @$ R, C8 W  
# }9 ?" ^$ g0 |9 O7 a' `# m  j: J' X1 mendmodule  
3 V0 c4 O7 G/ F; ~/ i; [% S+ u7 T
; w1 Z$ @: ]9 [2 w% B) `6 I, F

$ X: W9 m3 o2 X8 V6 n6 N  p( S楼主 你难道要 1ns/1fs    ?   这样?
$ D- Y; D" r9 O" s% t  R

该用户从未签到

3#
 楼主| 发表于 2013-5-16 23:12 | 只看该作者
zgq800712 发表于 2013-5-14 21:31 ! D6 K( |4 q8 l4 f4 P0 f
`timescale 1ns/1ps
1 d6 K* q; H# Z% f0 q
# [! F  B* R- ]  x2 U" rmodule fifo_top_tb();
& R1 r$ a6 q' V, R* C3 `( w
嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来产生时钟的。

该用户从未签到

4#
发表于 2013-5-16 23:21 | 只看该作者
schx 发表于 2013-5-16 23:12 * o& c4 C# [/ j8 V7 c  M
嗯,没什么问题了,小弟菜鸟,没怎么实际写过verilog程序以为这题有什么玄机  =。=,其实最后我也是这样来 ...
2 S6 S: N% \3 K. ^& L% |
我也是菜鸟,多自己看的,现在找到工作了?

该用户从未签到

5#
 楼主| 发表于 2013-5-27 10:00 | 只看该作者
zgq800712 发表于 2013-5-16 23:21 % D% t( A$ D( q$ R/ N) W7 @
我也是菜鸟,多自己看的,现在找到工作了?
  a( b6 ?$ j, V# S# r
恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。

该用户从未签到

6#
发表于 2013-5-27 15:22 | 只看该作者
schx 发表于 2013-5-27 10:00 8 [! k' ]' T/ @
恩,现在找到工作了,今年形势比较差,所以在杭州这边一家医疗器械创业公司先做了。。

# {, g4 r% f; @5 t; _哈,是FPGA的嘛?

该用户从未签到

7#
 楼主| 发表于 2013-5-27 22:45 | 只看该作者
zgq800712 发表于 2013-5-27 15:22
4 p) n5 {1 R; W8 F- x  \! I0 p6 D5 F" L哈,是FPGA的嘛?
2 ?  q$ M' \+ T/ Q" }' V- y
嗯,硬件和fpga都做。

该用户从未签到

8#
发表于 2013-5-28 11:14 | 只看该作者
schx 发表于 2013-5-27 22:45 2 H* c% C2 N" i9 n6 ]# Z' y
嗯,硬件和fpga都做。

- }; [+ Q9 G1 r( ?: H$ I恩,一般不分的公司就是FPGA相关倾向于让硬件工程师做,哈,多看看熟悉下公司产品渠道,客户等。

该用户从未签到

9#
发表于 2013-7-4 13:27 | 只看该作者
没有功能仿真,希望能给你一些参考吧
5 @# D+ b; O9 i& i, p, B6 T) K6 \`timescale 1ns / 1ps6 P5 ]+ F6 f9 A3 a! \5 q/ Y3 W
. {- [. R3 U! z* Z1 v$ o
module test;' j! m: N# v" K1 ?

' B+ N! b2 E+ ?5 {& o0 c: Uparameter CLK_PERIOD = 37.037; //27mhz 对应的时钟周期5 N3 d) W7 w# Z4 y' \
reg sys_clk;# H0 B! w1 {4 s8 B1 e, f
reg reset;
! i$ g- z% h# F& k3 Z5 pinitial begin8 w. b, Z7 ]8 b; Q/ k# }! k
  sys_clk = 0;
# {4 U' A+ ^" G# C6 V1 {  reset = 0;1 X5 e5 i* A: @% G
  #10 reset = 1;4 w, Q# h* p9 W/ G
  #100 reset =0;2 u) I* K( t9 @( ~0 V
end0 {7 {2 V4 L  \
// 产生27mhz时钟
: G5 V+ i& K7 S& A) V/ a! Ralways #(CLK_PERIOD/2) sys_clk = ~sysclk;
4 A7 |0 n2 h  ]1 L/ C3 ?: a7 ~" d7 t/ Z/ P8 L" \9 O& n( q6 l5 s
reg [9:0] rand_data;
8 |) Z) A$ |& c* ^8 F: q1 {! a
3 B4 Z5 c8 ^+ A$ j0 [/ p; o0 balways @ (posedge sys_clk) begin
1 Z* q4 w* k+ Y  if(reset)- o) {9 [& h! u
    rand_data <= 0;7 w) J0 ?* ]- G7 U5 _+ B
  else2 p, ~3 h5 X; ?0 H' x
    rand_data <= $random;
' l9 q" c9 f7 s  q) U' N  n  F9 ]end; [! Z! v+ n; q& O' M+ ^, Y
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 14:16 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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