fpga编程语言VHDL_vhdl和fpga

fpga编程语言VHDL_vhdl和fpga硬件新手疑问1:大家都在争硬件开发是选择单片机,DSP,ARM还是FPGA呢?以我个人经验,我也是在硬件方面做了几年的老油条了,大学时玩过单片机,也就是大家常说的C51,C52,单片机驱动个流水灯还行,但是研究生阶段遇到的很多问题,单片机就有心无力了。至于ARM,DSPorFPGA,由于研一做无人机做了DSP的项目,鄙人觉得DSP入手比较难,但是DSP主攻方向是算法研究的,用于算法处理,绝对是…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

硬件新手疑问1:大家都在争硬件开发是选择单片机,DSP,ARM还是FPGA呢?

以我个人经验,我也是在硬件方面做了几年的老油条了,大学时玩过单片机,也就是大家常说的C51,C52,单片机驱动个流水灯还行,但是研究生阶段遇到的很多问题,单片机就有心无力了。至于ARM,DSP or FPGA,由于研一做无人机做了DSP的项目,鄙人觉得DSP入手比较难,但是DSP主攻方向是算法研究的,用于算法处理,绝对是ARM,FPGA替代不了的。但是DSP也有他的局限性,他不利于做硬件系统的驱动控制芯片,通常起着硬件系统控制模块的还是是ARM和FPGA,对比ARM和FPGA,我建议学一种,学精就行,不要三期两道!但是我比较推崇FPGA,因为其应用前景相比于ARM更为广阔,与此同时,FPGA正在朝着算法研究的方向发展,也就是说它有趋势会替代DSP。但目前,一块好的信号处理板的模式通常是DSP+FPGA或者DSP+ARM,所以学习DSP和FPGA结合开发的技术尤为重要!

fpga编程语言VHDL_vhdl和fpga

硬件新手疑问2:既然我选择了学习FPGA,那我用什么编程语言来编程呢?VHDL OR Verilog?

鄙人之前也是纠结了很久,摸爬滚打了老久,那么首先来看看两者编程风格:

1)实体部分

//verilog

module AD9517_Cfg
(
i_9517cfg_CfgClk , // 数据时钟                      
i_9517cfg_CfgClk180 ,       // 配置时钟,与数据时钟反向180度 
i_9517cfg_Arst_n , // 全局复位

o_9517cfg_SpiClk , // 输出SPI时钟
o_9517cfg_SpiDat , // 输出SPI数据
o_9517cfg_Cs_n , // 输出片选
o_9517cfg_Sync_n // 9517各通道间输出同步控制信号

);

input i_9517cfg_CfgClk ;
input i_9517cfg_CfgClk180 ;
input i_9517cfg_Arst_n ;
output o_9517cfg_SpiClk ;
output o_9517cfg_SpiDat ;
output o_9517cfg_Cs_n              ;

output o_9517cfg_Sync_n ;

—————-VHDL

entity gesignal is
port(clk:in std_logic;
–cmd:in std_logic_vector(1 downto 0);
reset:in std_logic;

–cnout3:out std_logic_vector(5 downto 0);
–go:out STD_LOGIC;
–flag:out STD_LOGIC;

–ackrout:out STD_LOGIC;
ODB:out STD_LOGIC;
IAG1,IAG2:out STD_LOGIC;
SAG1,SAG2:out STD_LOGIC;
SRG1,SRG2:out STD_LOGIC;
CMG:out STD_LOGIC;
ACK:out STD_LOGIC
);
end entity gesignal;

不难发现两者语法的实体都很精简,只是定义管脚Verilog在实体外,VHDL在实体内。

2)进程

//verilog

always @( posedge i_9517cfg_CfgClk, negedge i_9517cfg_Arst_n )
begin
    if( ! i_9517cfg_Arst_n )
        int_Cs_n <= 1’b1;
    else if ((int_CsWidthCnt_5b > 7) && (!int_CfgDone))
    int_Cs_n <= 1’b0;
    else
    int_Cs_n <= 1’b1;

end

———–VHDL

ge_cn3:process(read_flag,clk,iACKT)
begin
if(iACKT=’1′)then
cn3<=(others=>’0′);
else
if(clk’event and clk=’1′)then
if(read_flag=’1′)then
cn3<=cn3+’1′;
end if;
end if;
end if;
end process ge_cn3;

很显然两者都是固定形式编写,只是Verilog偏C语言一点,常用always作为进程,VHDL常用process来写进程。

就以上两个例子,可以看出,其实VHDL与Verilog的语法是很固定且很简单的,对于编程有经验的人来说并不会纠结选Verilog和VHDL,两种语言完全是相通的,如果放开点说完全是一模一样的,换汤不换药。因此,对于FPGA编程,VHDL能完成的任务,Verilog也一定能完成,Verilog能完成的任务,VHDL也一定能完成,不存在谁优于谁的问题,就在于你对那个编的顺手,哪个感兴趣。

但是当你掌握了其中任意一门语言,就可以很容易转换到另一门编程语言的!就我个人而言,常用的是VHDL,但是也完全能看懂Verilog代码,我并未系统学习Verilog,但是学懂VHDL之后,Verilog也就无师自通啦!因此,硬件编程的老油条做工程时,常常会混合编程,即VHDL和Verilog都会用到的。

结论语

做纯FPGA,学纯VHDL没有一点用!我之前也学过java等语言,搞过软件开发!若是单独学软件编程的JAVA或者硬件开发的FPGA,顶多混到一个研发工程师的级别!所以,,,编程的灵魂还是在于算法和编程思维,fpga里或者java里融合不了算法和编程思维,代码就毫无意义!代码毫无意义就一文不值!所以,我建议多学学算法,算法可以在任何开发平台上运行!比如同步定位算法可以用java编写做成app,也可以用VHDL编写嵌入到硬件系统中跟踪目标!      所以,多学点算法,多学点编程思维总是好的!!!

纯手工输入,转载请注明地址,还有博主非常愿意与各位道友交流项目开发经验!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191016.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jinfo介绍[通俗易懂]

    jinfo介绍[通俗易懂]1.jinfo1.1简介jinfo用于打印java的配置信息,这些配置信息包括:javasystempropertiesjvm命令行参数通过查看这些配置信息,可以了解java进程的运

    2022年8月1日
    6
  • 利用HashSet给list去重[通俗易懂]

    利用HashSet给list去重[通俗易懂]如果有一个string的list要去重,那么可以用以下代码:List<String>orgIds=……..//orgIds即可能存在重复数据的String的集合//利用HashSet去重Set<String>set=newHashSet<String>(orgIds);orgIds=newArrayList<String…

    2022年5月25日
    71
  • ubuntu 20.04 安装中文输入法_ubuntu20.04安装中文输入法

    ubuntu 20.04 安装中文输入法_ubuntu20.04安装中文输入法在安装ubuntu时,如果选择英文安装,默认会不启用中文输入法的。可以通过下述方法开启:在settings的Region&amp;amp;amp;amp;amp;amp;Language的InputSources设置栏中点击+添加Chinese(IntelligentPinyin)最后,重启后使之生效。…

    2022年9月25日
    3
  • validateRequest=false 可以禁用请求验证[通俗易懂]

    validateRequest=false 可以禁用请求验证[通俗易懂]参看了MVP的利用WebClient和WebRequest类获得网页源代码于是想自己动手写点,当然是参考其的办法啦。我这次下载了visualwebdeveloper2005express按照上面的文章编写了代码,我的btn函数如下       stringurlPage=””;       urlPage=UrlText.Text;

    2022年6月10日
    29
  • sphinx全文检索 安装配置和使用

    sphinx全文检索 安装配置和使用

    2021年10月19日
    50
  • CSDN专属idea插件上线啦~~

    CSDN专属idea插件上线啦~~1.插件介绍CSDN的idea插件CSDNtools(以下简称tools),tools整合了日常开发中常用的工具,一站式工具集。json格式化 时间格式化 ip查询 计算器 CSDN平台搜索 github仓库搜索 maven仓库依赖搜索 常用文档检索 单词翻译 看新闻2.安装方法idea页面File–>Settings–>Plugins在Marketplace搜索csdn,选择下载安装。如图3.使用方法ctrl+shift+I唤起插件 Tool

    2022年5月30日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号