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

基于FPGA的DAC0832电路的驱动代码

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于FPGA的DAC0832电路的驱动代码# @" P8 `9 Z+ i4 `

/ a5 z2 f! g" q/ _6 d原理图
9 `! }" x* @4 p
/ J9 P. F7 S7 G' v时序:0 @; ?5 f3 y/ X& o4 M9 T
& b2 c; j: o+ B+ q; C8 x) E6 }+ z
这里的时序我分为 CS 拉低,WR拉低和赋值。WR拉高,CS拉高  4个阶段,
% E( Z; ^; H' q1 ~代码:
3 J8 I* Q, |, R" g6 G) V) Z8 F9 d9 h* [module dac; q/ j+ J' i) I
(+ V3 g' k* H) e  }) m: J0 Z; O2 @! O
  sys_clk,reset_b,
  u5 N9 i% L; p  wr,cs,data# A% q, r& s5 j% J) f
);4 B  C$ ~# p5 b2 f! R3 [
input sys_clk,reset_b;
2 V3 Y" y& |  V  [ output [7:0] data;
' M: N- y0 K+ S+ _1 H output wr,cs;; h) M, B. D0 K3 k/ i! Q$ `; ]
  V3 Q* @& t/ f5 ]$ M, ^
reg wr,cs;
, Y; j3 e. N4 [ reg adc_clk;
! ^0 G2 S3 Y" v8 D/ y1 t! y, _, p reg [7:0] data,data_buf;
/ y+ M3 k( I0 } reg [2:0] next;
/ ?5 x: E+ v& |, y" P/ K7 y & H# Q: t3 `9 E/ ^; ]. z: W
parameter  state1 =3'd0;5 i7 _! E% i; W
parameter  state2 =3'd1;
9 C$ \" A1 o) a6 L, d parameter  state3 =3'd2;2 Z% R2 k, J) W+ P6 r+ O" I
parameter  state4 =3'd3;
6 _1 S8 _  Y0 C4 s! a reg[15:0] count;
: ^# }2 K  F9 i always @ (posedge sys_clk)
" M4 C9 G! }2 c/ g9 b% f begin
  b. v5 |# ~; N4 G# e7 C& [# p  if(!reset_b)
" V% q8 M( d& y* h' Y  begin$ C' l2 e! `  x3 f3 T" [0 I$ m
   count<=16'd0;7 S1 V8 x( v. l1 a
   adc_clk<=1'b1;+ V' k, l0 g  X9 V- T  s& s
  end- `$ I, H4 y1 s* ?4 v8 j
  else
% u  d4 w0 h4 b; v" ~  if(count==16'd100)
; \- {. u+ i+ |9 H5 l2 r  begin1 v# L# ~0 X$ f( N
   count<=16'd0;
  l/ ^3 e5 B1 ]   adc_clk<=~adc_clk;
0 {, N+ P: C; Y& Y' d$ V+ p! \  end; H! Q! F, C& u1 X
  else count<=count+1'b1;3 y5 f/ Q4 j. H3 g/ m9 ~7 l
end
* [& G& m  u, k$ R//=========data buf add=================
% M) h+ M! G3 B. C reg[20:0] count_adc;
1 U; \! x9 I6 v! q always @ (posedge sys_clk)7 s! F9 i2 e4 d4 B/ F3 z3 d0 G! h
begin1 u- T; R- d$ ]
  if(!reset_b)$ B6 G" t- |, b1 z+ x
  begin) V6 [, n1 G" i
   count_adc<=21'd0;2 b9 ~+ J) F3 R% {3 U
   data_buf<=8'b0;' A9 }8 a! }" J  }) w
  end
  M; J7 S+ D, \; d( h8 x  else) q* u; G. F3 }$ j
  if(count_adc==21'd50000000)
2 d! b2 K- I9 o( G! ~/ S! h9 D& b  begin  f4 R1 @! m9 G' ?2 A
   count_adc<=21'd0;
' i" g( o' u& Y: i: T! o   data_buf<=data_buf+1'b1;
( p7 V, ]" s+ ^  end9 A8 [4 F$ y8 X
  else count_adc<=count_adc+1'b1;' C3 l$ Y" H1 f6 B5 a3 g
end
8 ]% R% P) j- a2 W" d
' f. [5 `$ w* X! G/ l5 H+ e9 N7 @3 E/ V6 y) p3 q
always @ (posedge adc_clk)5 p4 {) y6 u* V& {
begin+ A3 d2 S6 W4 V9 {, a/ S
  if(!reset_b)9 r# O, t, i$ y* i* `. |4 Y1 d) C% R
  begin
9 r% l2 |( B9 H9 Q   next<=state1;
' f# _; F6 q! x5 W   cs<=1'b1;4 T' K3 f* S1 t( W5 g! ]
   wr<=1'b1;/ ~' s' g0 V# g$ o) e+ y/ k
  end5 ?5 _& B/ ?1 f6 s- a6 r8 g
  else- |5 B' \( h: i2 e
  case (next)
0 F! e5 {7 j( H8 k  state1 :/ _6 e2 W2 f" }1 g9 f* ], T& ^; H
   begin
% w; H9 D% \, o8 F    cs<=1'b0;& N6 a7 ]' I! G! M0 v
    next<=state2;
" o: w. l, p0 ?  b5 k3 d   end
$ [2 I, G) }0 X4 |' h7 T9 G  state2 :
+ @0 w2 q  q" q7 y8 }2 Z+ X   begin
/ q( d9 @4 b5 n    wr<=1'b0;; c/ \0 P# p' `+ J/ b3 q. P
    data<=data_buf;
2 N' e! e/ F) j7 e    next<=state3;! d. ^& C( g4 a* Q1 B; c7 e
   end
0 N1 y) q' z$ @2 }) V% o  state3 :# ~3 S2 u6 y+ R2 K
   begin
' r+ d7 C" M  P0 s; O) |  o$ |. _# {    wr<=1'b1;
3 S) @/ \& X- R# T9 j. P6 l    next<=state4;* K5 ]. w1 P0 W* F" d! b3 t
   end
& G6 G5 b3 d: `% z  ^* P  state4 :- j# o0 ^: j1 i. D' r
   begin% l& Z4 ?& E- ~6 [
    cs<=1'b1;
. O/ e0 j/ I# b+ {    next<=state1;
0 I+ I! e9 D% Q0 Z' h! n: d4 _   end* a, _, W  Y  Z
  endcase
$ v7 g+ G& t. g" `, n  ' K/ ]4 I8 ~; H' W: I* e* k& C; o3 w0 o! D
end
" v! }+ w; l% J
9 d" s) \$ ?0 G! b  Y  i 0 d3 a: H/ l% k" q0 m. o
endmodule0 r6 Q! i7 `) j" b
8 V4 V, p  r* P7 ^

该用户从未签到

2#
发表于 2019-5-16 17:50 | 只看该作者
很棒的资料 谢谢

该用户从未签到

3#
发表于 2022-8-18 16:01 | 只看该作者
基于FPGA的DAC0832电路的驱动代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 03:11 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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