高速双路DAC AD9708 FPGA读写实验 Verilog设计源码Quartus工程文件,DAC芯片选用AD9708,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module hs_dual_da( input sys_clk , //系统时钟 input sys_rst_n , //系统复位,低电平有效 //DA芯片接口 output da_clk , //DA(AD9708)驱动时钟,最大支持125Mhz时钟 output [9:0] da_data , //输出给DA的数据 //DA芯片接口 output da_clk1 , //DA(AD9708)驱动时钟,最大支持125Mhz时钟 output [9:0] da_data1 //输出给DA的数据 ); //wire define wire [9:0] rd_addr; //ROM读地址 wire [9:0] rd_data; //ROM读出的数据 //***************************************************** //** main code //***************************************************** //assign ad_clk2 = ad_clk ; assign da_clk1 = da_clk; assign da_data1 = da_data; pll u_pll( .inclk0 (sys_clk), .c0 (clk)); //DA数据发送 da_wave_send u_da_wave_send( .clk (clk), .rst_n (sys_rst_n), .rd_data (rd_data), .rd_addr (rd_addr), .da_clk (da_clk), .da_data (da_data) ); //ROM存储波形 rom_1024x10b u_rom_1024x10b( .address (rd_addr), .clock (clk), .q (rd_data) ); endmodule
FPGA读写 SDRAM Verilog设计源码Quartus工程文件,SDRAM型号FW9825G6KH-6,SDRAM读写测试: 向SDRAM中写入数据,然后将数据读出,并判断读出的数据是否正确,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module sdram_rw_test( input clk, //FPGA外部时钟,50M input rst_n, //按键复位,低电平有效 //SDRAM 芯片接口 output sdram_clk, //SDRAM 芯片时钟 output sdram_cke, //SDRAM 时钟有效 output sdram_cs_n, //SDRAM 片选 output sdram_ras_n, //SDRAM 行有效 output sdram_cas_n, //SDRAM 列有效 output sdram_we_n, //SDRAM 写有效 output [ 1:0] sdram_ba, //SDRAM Bank地址 output [12:0] sdram_addr, //SDRAM 行/列地址 inout [15:0] sdram_data, //SDRAM 数据 output [ 1:0] sdram_dqm, //SDRAM 数据掩码 //LED output led //状态指示灯 ); //wire define wire clk_50m; //SDRAM 读写测试时钟 wire clk_100m; //SDRAM 控制器时钟 wire clk_100m_shift; //相位偏移时钟 wire wr_en; //SDRAM 写端口:写使能 wire [15:0] wr_data; //SDRAM 写端口:写入的数据 wire rd_en; //SDRAM 读端口:读使能 wire [15:0] rd_data; //SDRAM 读端口:读出的数据 wire sdram_init_done; //SDRAM 初始化完成信号 wire locked; //PLL输出有效标志 wire sys_rst_n; //系统复位信号 wire error_flag; //读写测试错误标志 //***************************************************** //** main code //***************************************************** //待PLL输出稳定之后,停止系统复位 assign sys_rst_n = rst_n & locked; //例化PLL, 产生各模块所需要的时钟 pll_clk u_pll_clk( .inclk0 (clk), .areset (~rst_n), .c0 (clk_50m), .c1 (clk_100m), .c2
AD(AD9280)和DA(AD9708) FPGA读写Verilog设计源码Quartus工程文件,AD芯片选用AD9280,DA芯片选用AD9708,,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module hs_ad_da( input sys_clk , //系统时钟 input sys_rst_n , //系统复位,低电平有效 //DA芯片接口 output da_clk , //DA(AD9708)驱动时钟,最大支持125Mhz时钟 output [7:0] da_data , //输出给DA的数据 //AD芯片接口 input [7:0] ad_data , //AD输入数据 //模拟输入电压超出量程标志(本次试验未用到) input ad_otr , //0:在量程范围 1:超出量程 output ad_clk //AD(AD9280)驱动时钟,最大支持32Mhz时钟 ); //wire define wire [7:0] rd_addr; //ROM读地址 wire [7:0] rd_data; //ROM读出的数据 //***************************************************** //** main code //***************************************************** //DA数据发送 da_wave_send u_da_wave_send( .clk (sys_clk), .rst_n (sys_rst_n), .rd_data (rd_data), .rd_addr (rd_addr), .da_clk (da_clk), .da_data (da_data) ); //ROM存储波形 rom_256x8b u_rom_256x8b( .address (rd_addr), .clock (sys_clk), .q (rd_data) ); //AD数据接收 ad_wave_rec u_ad_wave_rec( .clk (sys_clk), .rst_n (sys_rst_n), .ad_data (ad_data), .ad_otr (ad_otr), .ad_clk (ad_clk) ); endmodule