源码下载 源码-信号发生器和DA转换.rar
技术交流请加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 ; |