FPGA模块——DA转换模块(AD9708类)

FPGA模块------DA转换模块(AD9708类)

AD9708/3PD9708

由于电路接了反相器,所以对应就不一样了。

电路图:

代码

在ROM中存入要输出的波形数据:

用软件生成各个对应的点。

给DA转换器一个时钟,这个时钟是对clk时序时钟的取反。由于DA也是上升沿锁存数据,这样就保证DA模块读到的数据都是稳定了的数据。这样只是为了保证系统的稳定。

c 复制代码
module da_wave_send(
    input                 clk    ,  //时钟
    input                 rst_n  ,  //复位信号,低电平有效
    
    input        [7:0]    rd_data,  //ROM读出的数据
    output  reg  [7:0]    rd_addr,  //读ROM地址
    //DA芯片接口
    output                da_clk ,  //DA(AD9708)驱动时钟,最大支持125Mhz时钟
    output       [7:0]    da_data   //输出给DA的数据  
    );

//parameter
//频率调节控制
parameter  FREQ_ADJ = 8'd5;  //频率调节,FREQ_ADJ的越大,最终输出的频率越低,范围0~255

//reg define
reg    [7:0]    freq_cnt  ;  //频率调节计数器



//数据rd_data是在clk的上升沿更新的,所以DA芯片在clk的下降沿锁存数据是稳定的时刻
//而DA实际上在da_clk的上升沿锁存数据,所以时钟取反,这样clk的下降沿相当于da_clk的上升沿
assign  da_clk = ~clk;       
assign  da_data = rd_data;   //将读到的ROM数据赋值给DA数据端口

//频率调节计数器
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        freq_cnt <= 8'd0;
    else if(freq_cnt == FREQ_ADJ)    
        freq_cnt <= 8'd0;
    else         
        freq_cnt <= freq_cnt + 8'd1;
end

//读ROM地址
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        rd_addr <= 8'd0;
    else begin
        if(freq_cnt == FREQ_ADJ) begin
            rd_addr <= rd_addr + 8'd1;
        end    
    end            
end

endmodule
相关推荐
网易独家音乐人Mike Zhou1 小时前
【嵌入式模块芯片开发】LP87524电源PMIC芯片配置流程,给雷达供电的延时上电时序及API函数
c语言·stm32·单片机·51单片机·嵌入式·电源·毫米波雷达
Saniffer_SH3 小时前
【每日一题】PCIe答疑 - 接大量 GPU 时主板不认设备或无法启动和MMIO的可能关系?
运维·服务器·网络·人工智能·驱动开发·fpga开发·硬件工程
会编程是什么感觉...3 小时前
硬件 - 常见通信协议整合
单片机·嵌入式硬件·fpga开发
Saniffer_SH3 小时前
【每日一题】讲讲PCIe链路训练和枚举的前后关系
运维·服务器·网络·数据库·驱动开发·fpga开发·硬件工程
Nerd Nirvana4 小时前
WSL——Windows Subsystem for Linux流程一览
linux·运维·服务器·windows·嵌入式·wsl·wsl2
rechol4 小时前
mcu启动流程
stm32·单片机·mcu·嵌入式
s09071368 小时前
ZYNQ 中 AXI BRAM 的使用详细的说明。
fpga开发·zynq
MounRiver_Studio11 小时前
RISC-V IDE MRS2使用笔记(七):书签与笔记功能
ide·嵌入式·risc-v
哎呦喂研究院12 小时前
FPGA:重构硬件逻辑的柔性算力核心,国产替代的破局关键
fpga开发
国科安芯21 小时前
国产RISC-V架构MCU在工控系统中的节能性分析
网络·单片机·嵌入式硬件·fpga开发·性能优化·架构·risc-v