在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1953|回复: 0

[原创] 基于fpga的信号发生器和DA转换

[复制链接]
发表于 2018-11-19 16:24:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
源码下载 源码-信号发生器和DA转换.rar (4.2 KB, 下载次数: 7 )
技术交流请加FPGA交流群:97925396 交流
文章原文:www.mdy-edu.com/product/809.html
3设计实现3.1顶层接口
新建目录:D:\mdy_book\dds_da。在该目录中,新建一个名为dds_da.v的文件,并用GVIM打开,开始编写代码。
我们要实现的功能,概括起来就是FPGA产生控制AD9709,让其中的通道A产生正弦波所对应的电压。为了控制AD9709的通道A,就需要控制AD9709的MODE、SLEEP、CLK1、WRT1、DB7~0P1管脚。根据设计目标的要求,整个工程需要以下信号:
1.使用clk连接到晶振,表示50M时钟的输入。
2.使用rst_n连接到按键,表示复位信号。
3.使用dac_mode信号连接到AD9709的MODE管脚,用来控制其工作模式。
4.使用dac_sleep信号连接到AD9709的SLEEP管脚,用来控制其睡眠模式。
5.使用dac_clka信号连接到AD9709的CLK1管脚,用来控制通道A的时钟。
6.使用dac_wra信号连接到AD9709的WRT1管脚,用来控制通道A的写使能。
7.使用8位信号dac_da连接到AD9709的DB7~0P1管脚,用来控制通道A的写数据。
综上所述,我们这个工程需要7个信号,时钟clk,复位rst_n,dac_mode、dac_sleep、dac_clka、dac_wra和dac_da,其中dac_da是8位信号,其他都是1位信号。下面表格表示了硬件电路图的连接关系。
器件
AD9709管脚
原理图信号
FPGA管脚
FPGA工程信号
U8
MODE
DAC_MODE
Y4
dac_mode
SLEEP
DAC_SLEEP
H2
dac_sleep
CLK1
DA_CLKA
R2
dac_clka
WRT1
DA_WRA
U1
dac_wra
DB7P1
DAC_DA7
AA1
dac_da[7]
DB6P1
DAC_DA6
Y2
dac_da[6]
DB5P1
DAC_DA5
Y1
dac_da[5]
DB4P1
DAC_DA4
W2
dac_da[4]
DB3P1
DAC_DA3
W1
dac_da[3]
DB2P1
DAC_DA2
V2
dac_da[2]
DB1P1
DAC_DA1
V1
dac_da[1]
DB0P1
DAC_DA0
U2
dac_da[0]
CLK2
DA_CLKB
R1

WRT2
DA_WRB
P2

DB7P2
DAC_DB7
P1

DB6P2
DAC_DB6
N2

DB5P2
DAC_DB5
N1

DB4P2
DAC_DB4
M2

DB3P2
DAC_DB3
M1

DB2P2
DAC_DB2
J1

DB1P2
DAC_DB1
J2

DB0P2
DAC_DB0
H1

X1

SYS_CLK
G1
clk
K1

SYS_RST
AB12
rst_n
将module的名称定义为dds_da,代码如下:
1
2
3
4
5
6
7
8
9
moduledds_da(
clk       ,
rst_n     ,
dac_mode ,
dac_clka  ,
dac_da   ,
dac_wra  ,
dac_sleep
);

其中clk、rst_n是1位的输入信号,dac_da是8位的输出信号,dac_mode,dac_clka,dac_wra,dac_sleep是一位输出信号。
1
2
3
4
5
6
7
input             clk        ;
input             rst_n      ;
output            dac_mode ;
output            dac_clka  ;
output [ 8-1:0]    dac_da    ;
output            dac_wra   ;
output            dac_sleep ;

\dds_da。在该目录中,新建一个名为dds_da.v的文件,并用GVIM打开,开始编写代码。
我们要实现的功能,概括起来就是FPGA产生控制AD9709,让其中的通道A产生正弦波所对应的电压。为了控制AD9709的通道A,就需要控制AD9709的MODE、SLEEP、CLK1、WRT1、DB7~0P1管脚。根据设计目标的要求,整个工程需要以下信号:
1.使用clk连接到晶振,表示50M时钟的输入。
2.使用rst_n连接到按键,表示复位信号。
3.使用dac_mode信号连接到AD9709的MODE管脚,用来控制其工作模式。
4.使用dac_sleep信号连接到AD9709的SLEEP管脚,用来控制其睡眠模式。
5.使用dac_clka信号连接到AD9709的CLK1管脚,用来控制通道A的时钟。
6.使用dac_wra信号连接到AD9709的WRT1管脚,用来控制通道A的写使能。
7.使用8位信号dac_da连接到AD9709的DB7~0P1管脚,用来控制通道A的写数据。
综上所述,我们这个工程需要7个信号,时钟clk,复位rst_n,dac_mode、dac_sleep、dac_clka、dac_wra和dac_da,其中dac_da是8位信号,其他都是1位信号。下面表格表示了硬件电路图的连接关系。
器件
AD9709管脚
原理图信号
FPGA管脚
FPGA工程信号
U8
MODE
DAC_MODE
Y4
dac_mode
SLEEP
DAC_SLEEP
H2
dac_sleep
CLK1
DA_CLKA
R2
dac_clka
WRT1
DA_WRA
U1
dac_wra
DB7P1
DAC_DA7
AA1
dac_da[7]
DB6P1
DAC_DA6
Y2
dac_da[6]
DB5P1
DAC_DA5
Y1
dac_da[5]
DB4P1
DAC_DA4
W2
dac_da[4]
DB3P1
DAC_DA3
W1
dac_da[3]
DB2P1
DAC_DA2
V2
dac_da[2]
DB1P1
DAC_DA1
V1
dac_da[1]
DB0P1
DAC_DA0
U2
dac_da[0]
CLK2
DA_CLKB
R1

WRT2
DA_WRB
P2

DB7P2
DAC_DB7
P1

DB6P2
DAC_DB6
N2

DB5P2
DAC_DB5
N1

DB4P2
DAC_DB4
M2

DB3P2
DAC_DB3
M1

DB2P2
DAC_DB2
J1

DB1P2
DAC_DB1
J2

DB0P2
DAC_DB0
H1

X1

SYS_CLK
G1
clk
K1

SYS_RST
AB12
rst_n
将module的名称定义为dds_da,代码如下:
1
2
3
4
5
6
7
8
9
moduledds_da(
clk       ,
rst_n     ,
dac_mode ,
dac_clka  ,
dac_da   ,
dac_wra  ,
dac_sleep
);

其中clk、rst_n是1位的输入信号,dac_da是8位的输出信号,dac_mode,dac_clka,dac_wra,dac_sleep是一位输出信号。
1
2
3
4
5
6
7
input             clk        ;
input             rst_n      ;
output            dac_mode ;
output            dac_clka  ;
output [ 8-1:0]    dac_da    ;
output            dac_wra   ;
output            dac_sleep ;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 07:57 , Processed in 0.015870 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表