发布时间:2023-07-14 12:00来源:www.51edu.com作者:畅畅
最好数字逻辑电路和语言同步学,你对整个数字逻辑电路有大概的了解之后,试着写点简单的代码,vhdl和 verilog依你周围人使用的多少选一个,先就在PC上仿真,工具软件ISE和QuartusII选一个。主要是多练,没事就去写点代码,刚开始不会写就抄,乱七八糟各种类型的,什么都抄,抄多了自然就有感觉了。如果你有钱的话,可以买一个开发板玩玩,这样学的更快更有意思,我以前网购一块不错,还送很多实用例子。初学者建议买个CPLD就行了,便宜也够用。然后多在图书馆去借这方面书来看。推荐入门书籍。一本国外的《数字逻辑设计(VHDL)基础》弗拉内希奇著,不行就找西电侯伯亨出版的《VHDL硬件描述语言与数字逻辑电路设计(第3版)》 太久没有看不知道记错没有。数字逻辑设计是基础,先把这个学好再说。
对于FPGA的学习如LS所说差不多,你自己也说VHDL会了,Quartus也用了一段时间了,相信基本入门了。你问的是不是:FPGA来弄信号处理接下来怎么学习吧?
回答如下:
首先,你必须弄清楚一点,FPGA的信号处理功能不如DSP灵活,可用的库函数有限,如果用FPGA来做复杂的信号处理,程序写起来比较复杂,而且麻烦。除非是信号处理速度要求很高,且处理过程不太复杂的,可以用FPGA来做;否则还是推荐用DSP。
下面说下,如何用FPGA来做信号处理算法的:
Altera FPGA提供一个DSP Builder的工具来做算法,DSP Builder是MATLAB内Simulink库中的一个插件,需要下载安装并。众所周知,MATLAB做信号处理算法可谓佼佼者了,DSP Builder很好的利用了这点,为MATLAB和QuartusII之间建立了很好的桥梁作用。
FPGA做信号处理算法的流程大致如下:在MATLAB中调用DSP Builder中的元件像LabView一样搭建算法模型,然后仿真,直到模型的功能达到你的信号处理要求为止;之后通过DSP Builder下的Signal Compiler工具把这个在MATLAB下的算法模型自动转成VHLD语言,而不需要用户自己编写代码,非常方便实用,而且用户还可以根据需要自动生成Modelsim下的仿真程序,来验证转换过来的VHDL代码的功能是否正确。
具体怎么学习推荐一本书《现代DSP技术》。作为入门教材非常实用。像你问的”先学什么后学什么,哪些阶段做些什么实验的“这本书就是按照这样的方式编排的。
买一个下载器,写一些简单的程序下载进去看看效果,楼主基本上已经入门了,剩下的就是多多练习,如果是学生的话可以找一些实习的工作
用QuartusII建立一个假的工程,比如.bgf工程,然后在工程里面简单地放一个port即可,然后点击“编程”,然后另存为,就把fpga内部的烧写逻辑读取了。但是,是bin文件。根本不知道具体逻辑实现,不过可以用来抄机。
用片外的安全加密存储器,其实FPGA的安全性不需要担心,或者说其实担心的是仿制、山寨,把你的每台设备给上唯一序列,放在安全加密存储器里,比如DS28E01,通过加密算法FPGA就能知道是否是山寨,如果山寨就不干活
像楼上说的那样,用内置配置芯片的FPGA,比如Altera Max10系列
用加密型MCU配置FPGA,这样FPGA的安全性就转移到了MCU,而MCU有很多专用于防的,Maxim就有几种,据我所知有一种的价格甚至到了500万,而且MCU内部也可以对配置信息进行加密
Stratix系列好像有片内的AES加密算法,具体不太清楚因为没用过,配置信息直接以加密方式写入配置芯片,片内解密,也是很安全的,找你所在地的Altera代理商要license就可以了
用MAX 10吧~~~~~
基于FPGA的可编程定时器/计数器8253的设计与实现
摘??? 要:本文介绍了可编程定时器/计数器8253的基本功能,以及一种用VHDL语言设计可编程定时器/计数器8253的方法,详述了其原理和设计思想,并利用Altera公司的FPGA器件ACEX 1K予以实现。
关键词:FPGA;IP;VHDL
引言
在工程上及控制系统中,常常要求有一些实时时钟,以实现定时或延时控制,如定时中断,定时检测,定时扫描等,还要求有计数器能对外部事件计数。要实现定时或延时控制,有三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。其中可编程定时器电路的定时值及其范围可以很容易地由软件来确定和改变,功能较强,使用灵活。Intel的定时器/计数器为可编程定时器PIT,型号为8253,改进型为8254,就是为完成上述功能而设计出来的一种电路。
随着ASIC的发展,在实际工程中通用的8253PIT芯片表现出如下的不足:1. 计数频率不够,8253计数速率最高2MHz,即使是其改进型8254也往往不能满足一些需要较高计数频率的工程。2. 8253PIT没有复位信号,输出的初始状态不受控制。针对8253的这些局限性,在实际工程中往往需要重新设计8253,并把8253的部分功能作为一个独立的IP模块嵌入到设计中,以实现完成某种特定功能的ASIC。
8253的基本功能和内部结构
主要功能
* 每片内部包含有3个独立的16位计数通道;
* 每个计数器都可以按照二进制或二―十进制计数;
* 每个计数器的计数速率可高达2MHz;
* 每个计数通道有6种工作方式,可由程序设置和改变;
* 所有的输入/输出电平信号都与TTL兼容。
内部结构
8253的内部结构如图1所示。
1. 数据总线缓冲器。这是8253与CPU数据总线连接的8位双向三态缓冲器,CPU通过数据总线缓冲器将控制命令字和计数初值写入8253芯片,或者从8253计数器中读取当前计数值。
2. 读/写逻辑。这是8253内部操作的控制部分。首先有片选信号CS的控制部分,当CS为高时,数据总线缓冲器处在三态,系统的数据总线脱开,故不能进行编程,也不能进行读写操作。其次,由这部分选择读写操作的端口(3个计数器及控制字寄存器),并控制数据传送的方向。
3. 控制字寄存器。在8253初始化编程时,由CPU写入控制字以决定通道的工作方式。此寄存器只能写入而不能读出。实际上,8253的3个计数器通道都有各自的控制字寄存器,存放各自的控制字,初始化编程时,这3个控制字分三次共用一个控制端口地址写入各自的通道.它们是利用最高两位的状态不同来区分的。
4. 计数器通道。包括计数器0、计数器1、计数器2。它们的结构完全相同,彼此可以按照不同的方式独立工作。每个通道包括:一个8位的控制寄存器;一个16位的计数初值寄存器;一个计数执行部件,他是一个16位的减法计数器;一个16位的输出锁存器。
每个通道都对输入脉冲CLK按二进制或二―十进制,从预置值开始减1计数。当预置值减到零时,从OUT输出端输出一信号。计数过程中,计数器受到门控信号GATE的控制。
8253的设计
根据8253的内部结构,设计8253主要分为两大部分:总线控制部分和定时/计数部分。
总线控制部分设计
这一部分主要完成数据的读/写,以及控制字的写入。用VHDL设计这部分前,应该了解8253的端口选择(见表1)和控制字(见图2)。
设计的关键在于对8253端口控制字的掌握。写信号到来时,首先要判断是控制字还是计数初始值。如果是初始值,其中先写低字节,再写高字节部分是重点,需要一个信号来判断写入的是新数据还是上一数据没写完的高字节部分.其他计数器的读/写大同小异。只要对8253的端口控制字了解清楚以及对读/写的时序有一定的了解,这一部分的逻辑很容易用VHDL语言描述出来.该进程可对外发出控制信号,表示控制字及数据写入完毕,可以进行计数器的计数操作了。该控制信号可以作为下面介绍的计数部分的触发信号。
计数器部分设计
8253有3个独立的计数器,每个计数器有6种工作模式,完成不同的功能。现以方式4为例介绍VHDL设计,其他的可以在方式4基础上加以修改。
这种工作方式,当写入控制字后输出为高。当写入计数值后,再过一个时钟周期,计数执行部件获得计数初值,并开始减1计数。当计数到0后输出变低电平,此低电平一直维持一个时钟周期,然后又自动变为高电平,并一直维持高电平,计数器停止计数。这种方式计数是一次性的,只有输入新的计数值之后,才能开始新的计数。
下面介绍方式4的设计过程:
CPU写入控制字后,输出outs立即复位,方式4中复位后outs为高电平。CPU写入计数初值的下一个CLK脉冲,计数初值被送到计数执行部件并开始减1计数,又经过N个时钟周期后才输出一个负脉冲。当GATE=1时,允许计数,GATE=0时,禁止计数。这样就实现了方式4基本的软件触发功能。
if clk1'event and clk1='0' then ――时钟脉冲下降沿到来
if gate1='1' then ――门控位为1,允许计数
if ce1> then
ce1
上一篇:电脑显示屏电路板讲解?
下一篇:哪家LED电源最好??
流浪法师出装,英雄联盟手游小法师怎么出装
勇者斗恶龙7安卓攻略,勇者斗恶龙7安卓
lol小鱼皮肤哪个手感好,菲兹皮肤手感排行
妄想山海香料蘑菇怎么做,妄想山海臭豆腐配方和制作方法分享
厄运之槌地图走法,魔兽厄运之槌副本入口
另一个伊甸奈岐角色任务,另一个伊甸奈岐技能介绍及强度测评
西部荒野稀有乌尔图斯,外域稀有精英分布图
奶茶制作方法,妄想山海烤全鱼配方和制作方法分享
洛克王国酷拉要刷多少次,洛克王国酷拉在哪
开心消消乐
类型:休闲益智
解压宝盒
类型:休闲益智
迷你世界
类型:休闲益智
恐怖奶奶
类型:休闲益智
老板挪个车2
类型:休闲益智
我的狗狗
类型:休闲益智
贪吃蛇大作战
类型:休闲益智
白块儿达人-节奏钢琴黑白块
类型:休闲益智
解压模拟大师
类型:休闲益智