• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

AD7706b驱动及PWM波输出设计VHDL代码Quartus仿真

08/20 14:13
352
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240Z41H0511X.doc

共1个文件

名称:AD7706b驱动及PWM波输出设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

AD7606B输入

(4800-输入)/8(仿真时=学号后3位)

PWM输出

(600=100%)

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

PWM占空比为学号除以600乘以100%

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

整体仿真图

AD7606B模块仿真

PWM模块仿真

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--8通道adc7606b的硬件模式,并行输出模式
ENTITY?AD7606B?IS
???PORT?(
??????clk???????:?IN?STD_LOGIC;--时钟
??????rst_n?????:?IN?STD_LOGIC;--复位
??????os????????:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--输出低电平
??????adc_cvt???:?OUT?STD_LOGIC;--convst
??????adc_rst???:?OUT?STD_LOGIC;--高电平复位
??????rd????????:?OUT?STD_LOGIC;--低电平读
??????cs????????:?OUT?STD_LOGIC;--低电平使能
??????busy??????:?IN?STD_LOGIC;--忙
??????ad_data???:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);--并行输入AD
??????ch1???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道1
??????ch2???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道2
??????ch3???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道3
??????ch4???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道4
??????ch5???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道5
??????ch6???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道6
??????ch7???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--输出通道7
??????ch8???????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0)?--输出通道8
???);
END?AD7606B;
ARCHITECTURE?behave?OF?AD7606B?IS
???type?state?is?(
??????IDLE??????,
??????CVT???????,
??????BUSY_S??????,
??????RD_ST?????,
??????GET_DATA??
???);
???SIGNAL?state_c???????:?state;
???SIGNAL?flag??????????:?STD_LOGIC;
???
???SIGNAL?state_n???????:?state;
???SIGNAL?get_data_en???:?STD_LOGIC;
???
???SIGNAL?cnt_mum???????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
???SIGNAL?cnt_cvt???????:?STD_LOGIC_VECTOR(1?DOWNTO?0);
???SIGNAL?cnt_ch????????:?STD_LOGIC_VECTOR(2?DOWNTO?0);
???SIGNAL?adc_cvt_buf?:?STD_LOGIC;
???SIGNAL?rd_buf??????:?STD_LOGIC;
BEGIN
???adc_cvt?<=?adc_cvt_buf;
???rd?<=?rd_buf;
???
???os?<=?"000";--输出0
???adc_rst?<=?NOT(rst_n);--取反
???get_data_en?<=?'1'?when?(cnt_mum?=?"11111001")?else?'0';--采样使能
???
--计数250
???PROCESS?(clk,?rst_n)
???BEGIN
??????IF?((NOT(rst_n))?=?'1')?THEN
?????????cnt_mum?<=?"00000000";
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(cnt_mum?=?"11111001")?THEN
????????????cnt_mum?<=?"00000000";--计数到11111001=249
?????????ELSE
????????????cnt_mum?<=?cnt_mum?+?"00000001";--计数
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--状态跳转
???PROCESS?(clk,?rst_n)
???BEGIN
??????IF?((NOT(rst_n))?=?'1')?THEN
?????????state_c?<=?IDLE;
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????state_c?<=?state_n;
??????END?IF;
???END?PROCESS;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1029

  • 2-240Z41H0511X.doc
    下载

相关推荐