技术交流请加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 ; |
|