欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》

目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

随着集成电路技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,Verilog语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。

1.将按键编号,当某一路由(按键)呼叫时,能显示该路编号,且相应指示灯点亮;

2.能在显示端发出声光报警信号,报警时间2s左右,可手动切除;

3.可扩展至十六路呼叫器;

4.可设计每一路相应声音报警不同;

5.设计一存储功能,将同时按下的呼叫路由排序依次在输出端显示。

二、核心程序

当FPGA接收到16路控制信号的某路信号的时候,对应的输出显示使能信号,每个显示使能信号来控制对应的显示过程。其具体的设计代码如下:

always @(posedge clk or negedge rst)
beginif(!rst)beginled<=1'b0;num<=1'b0;bee<=1'b0;end
else beginif(cnt<8'b11111111)beginled<=1'b1;num<=1'b1;bee<=1'b1;        endif(cnt==8'b11111111||cnt==8'b00000000)beginled<=1'b0;num<=1'b0;bee<=1'b0;  endend
end

手动切除声光报警信号模块

上面的模块基本实现了警报信号的发送,但是在实践情况下警报信号应该可以手动的切除,否则就会影响正常的设备使用。其具体的设计构思为,当每路信号发送出控制信号的时候,发送显示使能信号,当切除信号发出的时候,警报信号马上切除。其主要代码如下:

always @(posedge clk or negedge rst)
beginif(!rst)begincnt<=8'b00000000;end
else beginif(en_able1==1'b0&&en_able2==1'b0)cnt<=8'b00000000;if(en_able1==1'b1&&en_able2==1'b1)cnt<=8'b00000000; if(en_able1==1'b1&&en_able2==1'b0)beginif(cnt==8'b11111111)cnt<=8'b11111111;elsecnt<=cnt+1'b1;end if(en_able1==1'b0&&en_able2==1'b1)cnt<=8'b00000000; end
end

同时按下的呼叫路由排序依次在输出端显示模块

前面我们讨论的都是只有一路信号发出信号的说明,现在我们要讨论当信号同时发出的时候,系统是如何工作的。并且实现信号编号的一次排序。这个模块的主要难点在于,系统为16路系统,那么当不同的信号发出控制使能信号的时候,其组合可能性是个天文数值。应此我们必学改变传统的设计思路。在这里,我们采用ROM来设计一个存储器来实现这个功能。

我们将16路信号分为4个部分,例如1-4路信号的16种组合情况为一个模块。而后面的5-8,9-12,13-16的编号为就为在第一种的情况下加上4,8,12,从而实现同时显示编号的功能。

我们首先来设计一个MIF文件来做为ROM的存储文件。其具体内容如下:

DEPTH = 32;

WIDTH = 16;

ADDRESS_RADIX = HEX;

DATA_RADIX = HEX;

CONTENT

BEGIN

0 : 0000;

1 : 0001;

2 : 0020;

3 : 0021;

4 : 0300;

5 : 0301;

6 : 0320;

7 : 0000;

8 : 4000;

9 : 4001;

A : 4020;

B : 4021;

C : 4300;

D : 4301;

E : 4320;

F : 4321;

END ;

其深度为32,宽度为16,其文件的内容如上。其每组信号的排序有16种情况,即0000,0001,0020,0021等等。然后利用QUARTUSII来设计ROM的IP核。

三、测试结果

其具体的仿真结论如下:

从上面的显示过程中,当第3路信号发送信号的时候,那么对应的第三路LED信号显示灯亮,而且对应的编号number显示2,表示第三路信号,其对应的编号为0,1,2……15,表示第一路到第16路信号,应此从上面的仿真图可以看到,显示标号为2.此外,警报器发出声音,bee信号的每一路对应着不同的报警信号。从而验证了这个模块的正确性。

当切除信号的发出的时候哦,切除使能信号enable2使警报信号结束。

如图所示,当切除信号del发出一个脉冲的时候,LED显示灯,每路的编号信号以及BEE警报信号都马上停止,通过这个仿真图,我们基本验证了手动切除模块的正确性。

基于FPGA的16路呼叫器设计过程。对于设计部分。整个呼叫器的设计分为软、硬件两个部分。软件部分采用Verilog HDL硬件描述语言进行设计,硬件部分采用以555时基电路进行设计。设计完成后,将验证正确的顶层原理图文件下载到实验箱,与面包板上搭建的模拟电路相连,进行功能验证。

A02-32

基于FPGA的呼叫设备verilog开发相关推荐

  1. 基于FPGA的火焰识别系统开发——简化版

    基于FPGA的火焰识别系统开发的详细版欢迎订阅本博: https://blog.csdn.net/ccsss22/article/details/115406504 1.问题描述:         传 ...

  2. 基于FPGA,解扰码器Verilog的实现,以及扰码器与解扰码器的联合仿真。附上仿真结果。

    文章目录 前言 一.扰码器 二.解扰码器 三.Descrambler的Verilog实现 1.descrambler.v 2.descrambler_tb.v 四.扰码器与解扰码器的联合仿真 1.sc ...

  3. 基于FPGA的ALU计算器verilog实现

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 Verilog HDL是一种硬件描 ...

  4. 基于FPGA的LED点阵系统开发

    LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势.传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势.FPGA的结构灵活,其逻辑单 ...

  5. 基于FPGA的16QAM调制器verilog实现,包括testbench,并通过MATLAB显示FPGA输出信号的星座图

    目录 1.算法仿真效果 2.verilog核心程序 3.算法涉及理论知识概要 4.完整verilog 1.算法仿真效果 matlab2022a/vivado2019.2仿真结果如下: 将FPGA仿真的 ...

  6. 基于Freeswitch的 呼叫中心中间件开发

    最近开发一个 呼叫中心中间件,也可以让用户不懂呼叫系统完成复杂的呼叫业务. 模块里面我集成了 WebSocket RESTFul API 服务器端 ws://192.168.0.250:8092/ap ...

  7. m基于FPGA的数字下变频verilog设计

    目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 整个数字下变频的基本结构如下所示 NCO使用CORDIC算法,CIC采用h结构的CIC滤波器,HBF采 ...

  8. 基于FPGA多通道数据采集系统verilog设计

    本设计实现多通道数据采集系统,该系统包括多通道数据采集和数据传输,使用verilog语言设计. 本设计实现功能:采集8路16位的AD数据,并发送到串口助手. 该设计架构图如下: 顶层模块代码如下: m ...

  9. 【FPGA混沌】基于FPGA的混沌系统verilog实现

    1.软件版本 Quartusii12.1 2.本算法fpga实现过程 这里,我们主要使用的公式为: 首先,我们使用MATLAB进行仿真,得到如下结果: 然后,我们使用FPGA进行实现 此时,式中A=1 ...

最新文章

  1. Photoshop简单制作绿色暗调风景图
  2. python最大分词_python正向最大匹配分词和逆向最大匹配分词的实例
  3. UI(UGUI)框架(一)---------概述与保存/读取面板类型与路径
  4. C++跨平台IDE之CodeBlocks
  5. windows 下conda安装gym
  6. 如何使用 ABAP 报表将 ABAP 服务器上的 SAP UI5 应用下载到本地
  7. CMD下查询Mysql中文乱码的解决方法
  8. 和我一起来分析某药品仓储管理系统 卡死现象
  9. CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)
  10. 143_Power BIPower Pivot月度、季度、半年度、全年同维度展示
  11. 目前最小的替换模板了,只有十几行代码
  12. printf打印二进制_优雅地打印 HEX 数据
  13. 算法 Tricks(二) —— 大数的处理
  14. 摇号系统怎么做_雨水收集系统怎么做
  15. 偷梁换柱“Windows 11安装包”竟成了恶意程序?
  16. 你知道Linux和Windows通用的复制和粘贴快捷键是什么嘛?
  17. 为什么我总写 Bug ?
  18. SCOI-2017 游记 SCOI-2017 酱油记 SCOI-2017 没有滚粗资格的记
  19. 为什么都瞧不起培训班出来的程序员?
  20. linux 查看网卡连接网线,查看网卡是否连接网线

热门文章

  1. 解决fork: retry: 资源暂时不可用
  2. 马云微博发文,给美国捐赠口罩却被美国网友谩骂。
  3. 由sudo -u nobody 开始--todo
  4. 服务器招标项目,服务器招标公告
  5. 盛世危局下的短视频:抖音们正遭遇优酷、腾讯、爱奇艺们包抄
  6. x.509数字证书编码详解
  7. 上海市2019年公务员录用考试笔试合格人员笔试成绩(B类)
  8. Cocos Creator AssetBundle 游戏分包方案评估
  9. Java植物名录程序_【人工智能】动物、植物、车型、菜品、LOGO识别示例代码
  10. 网络验证Minesweeper使用 学习(1)