//该列子在quatus ii 11上编译通过哦

module AD0809(

clk, //脉宽(至少100ns)
rst_n,
EOC, //约100us后EOC变为高电平转换结束
START, //启动信号,上升沿有效(至少100ns)
OE, //高电平打开三态缓冲器输出转换数据
ALE, //高电平有效,选择信道口
ADDA, //因为ADDA,ADDC都选择接地了,这里只有ADDA为变量
DATA, //转换数据
DATA_R
);

output START,OE,ALE,ADDA;
input EOC,clk,rst_n;
input [7:0] DATA;
output [7:0] DATA_R;

reg START,OE,ALE,ADDA;
reg[7:0] DATA_R;

reg [4:0] CS,NS;

parameter IDLE = 5'b00001,START_H = 5'b00010,START_L = 5'b00100,CHECK_END = 5'b01000,GET_DATA = 5'b10000;

always @(*)
case(CS)
IDLE: NS = START_H;
START_H: NS = CHECK_END;
CHECK_END:
if(EOC)
NS = GET_DATA;
else
NS = CHECK_END;

GET_DATA:
NS = IDLE;
default:
NS = IDLE;
endcase

always @(posedge clk)
if(!rst_n)
CS <= IDLE;
else
CS <= NS;

always @(posedge clk)
case(NS)
IDLE:
begin
OE <= 0;
START <= 0;
ALE <= 0;ADDA <= 1;
end

START_H:
begin
OE <= 0;
START <= 1; //产生启动信号
ALE <= 1;ADDA <= 1;//选择信道口IN0
end

START_L:
begin
OE <= 0;
START <= 0;
ALE <= 1; //启动信号脉宽要足够长,在启动的时候ALE要一直有效
end

CHECK_END:
begin
OE <= 0;
START <= 0;
ALE <= 0;
end

GET_DATA:
begin
OE <= 1; //高电平打开三太缓冲器输出转换
DATA_R <= DATA;//提取转换数据
START <= 0;
ALE <= 0;
end

default:
begin
OE <= 0;
START <= 0;
ALE <= 0;ADDA <= 0;
end

endcase

endmodule

FPGA AD0809 Verilog implement相关推荐

  1. 【入门学习四】基于 FPGA 使用 Verilog 实现串口回传通信代码及原理讲解

    目录 一.相关知识 二.模块设计 三.代码设计 3.1 串口接收模块 3.2 控制模块 3.3 串口发送模块 四.FIFO 核引用 五.管脚定义及结果展示 上一篇博文:[入门学习三]基于 FPGA 使 ...

  2. 【fpga里Verilog语言的小知识点】

    提示:小白撰写,如有错误希望指出 目录 前言 总结 前言 记录一下学习fpga里Verilog语言的小知识点,持续更新. 提示:以下是本篇文章正文内容 1.A = B ? C : D 是一个条件运算符 ...

  3. 国产智多晶FPGA基于Verilog的设计开发流程

    大家好,我是小梅哥,这里给大家介绍国产FPGA厂家"西安智多晶"微电子的FPGA基于Verilog进行逻辑设计的开发流程,步骤详细,可作为大家的评估参考.本博客将陆续发表更多国产F ...

  4. FPGA纯verilog代码实现图像对数变换,提供工程源码和技术支持

    目录 1.图像对数变换理论 2.log系数的matlab生成 3.FPGA实现图像对数变换 4.vivado与matlab联合仿真 5.vivado工程介绍 6.上板调试验证并演示 7.福利:工程代码 ...

  5. FPGA纯verilog代码读写N25Q128A QSPI Flash 提供工程源码和技术支持

    目录 1.N25Q128A芯片解读 2.N25Q128A读写时序 3.整体设计思路架构 4.verilog读写Flash驱动设计 5.verilog读写Flash控制器设计 6.FIFO缓存设计 7. ...

  6. FPGA纯Verilog实现任意尺寸图像缩放,串口指令控制切换,贴近真实项目,提供工程源码和技术支持

    目录 1.前言 2.目前主流的FPGA图像缩放方案 3.本方案的优越性 4.详细设计方案 5.vivado工程详解 6.上板调试验证并演示 7.福利:工程源码获取 1.前言 代码使用纯verilog实 ...

  7. 【FPGA】Verilog 实践:半加器与全加器 | 半减器与全减器 | Code Converter

    写在前面:本章主要理解加法器和减法器的概念,并了解 Code converter 的概念.使用 Verilog 实现多种加法器.减法器和代码转换器,通过 FPGA 验证 Verilog 实现的电路的行 ...

  8. 计算机组成原理课程设计:基于FPGA的Verilog模型机设计。

    理解简单模型机的工作原理,理解程序计数器,算数逻辑运算单元,控制单元,的工作原理.学会设计以及使用指令完成一定的功能,并将程序写入FPGA开发板并结合led灯数码管予以显示. 通过模型机设计可以掌握用 ...

  9. 【入门学习二】基于 FPGA 使用 Verilog 实现蜂鸣器响动的代码及原理讲解

    目录 一.知识了解 二.模块设计 三.程序实现 四.管脚配置及结果展示 五.写给小白看的 上一篇博文:[入门学习一]基于 FPGA 使用 Verilog 实现按键点灯代码及原理讲解 功能描述:通过前面 ...

最新文章

  1. Mysql一些重要配置参数的学习与整理(一)
  2. 配置linux终端主题需要密码,Mac/Ubuntu下终端色彩主题设置
  3. Hyperledger Besu(1)“系统框架”
  4. 美团暑期日常实习前端面试
  5. django 1.8 官方文档翻译: 2-5-10 数据库函数
  6. LeetCode 28. 实现strStr()
  7. 模块之序列化模块json
  8. 【毕业设计】 基于STM32的人体红外测温枪温度采集系统
  9. 原生开发什么意思_原生App是什么意思
  10. 需求分析——需求具备哪些特征
  11. 姓名大全 导入mysql_My SQL常用操作汇总详解
  12. mybatis中的when,then,end的用法
  13. Godot Engine:用着色器实现通过开关隐藏部分模型
  14. 深入理解Object.entries()
  15. 遇到程序员不修改bug时怎么办?我教你
  16. 研发管理-质量与效率提升-混沌工程在携程的实践
  17. HTTPS是怎么防止劫持的
  18. 利用node.js搭建服务器并访问静态网页
  19. Windows DOS内部命令详解04——del、ren、cls、ver、date、time
  20. 具有实践精神的理论家;我们时代的达芬奇------高德纳访谈录

热门文章

  1. c++ 语言设计原理之我为抽象狂
  2. PyQt5实战之二维码生成器(二):控件功能实现
  3. 大小端介绍,你知道常用的VS2019内存中字节序存储的顺序吗?
  4. 物联网卡可以应用在哪些领域
  5. HQChart使用教程30-K线图如何对接第3方数据4-流通股本数据
  6. MFC使用ADO连接SQL SERVER数据库实现的高校教材管理系统
  7. 【433 发射接收源码】
  8. poi读取百万级数据
  9. 什么是win32编程
  10. NOIP模拟试题2021/11/11