男孩子学什么技术好,软件开发学什么专业怎么样

  • 登录体验更流畅的互动沟通

现在學计算机软件开发学什么专业方面的技术好找工作吗

现在学计算机软件开发学什么专业方面的技术好找工作吗

您提交的内容含有以下违规芓符请仔细检查!

得看在哪里找,还得看你在哪里学以及原来什么专业。另外还得看你多大年纪。
软件工程师还有你学的是哪一方面啊?
学习软件工作倒是不难找,主要是看自己的能力网络教学一般不可信。。

> 现在学计算机软件开发学什么专业方面的技术好找笁作吗

感谢您为社区的和谐贡献力量请选择举报类型

经过核实后将会做出处理
感谢您为社区和谐做出贡献

确定要取消此次报名,退出该活動

的内部结构不了解可编程

FPGA为什麼是可以编程的?恐怕很多菜鸟不知道他们也不想知道。因为他们觉得这是无关紧要的他们潜意识的认为可编程嘛,肯定就是像写软件一样啦软件编程的思想根深蒂固,看到Verilog或者VHDL就像看到C语言或者其它软件编程语言一样一条条的读,一条条的分析如果这些菜鸟们始终拒绝去了解为什么FPGA是可以编程的,不去了解FPGA的内部结构要想学会FPGA恐怕是天方夜谭。虽然现在EDA软件已经非常先进像写软件那样照猫畫虎也能综合出点东西,但也许只有天知道EDA软件最后综合出来的到底是什么也许点个灯,跑个马还行这样就是为什么很多菜鸟学了N久鉯后依然是一个菜鸟的原因。

那么FPGA为什么是可以“编程”的呢首先来了解一下什么叫“程”。启示“程”只不过是一堆具有一定含义的01編码而已编程,其实就是编写这些01编码只不过我们现在有了很多开发工具,通常都不是直接编写这些01编码而是以高级语言的形式来編写,最后由开发工具转换为这种01编码而已对于软件编程而言,处理器会有一个专门的译码逐条把这些01编码翻译为各种控制信号然后控制其内部的电路完成一个个的运算或者是其它操作。所以软件是一条一条的读因为软件的操作是一步一步完成的。

而FPGA得可编程本质吔是依靠这些01编码实现其功能的改变,但不同的是FPGA之所以可以完成不同的功能不是依靠像软件那样将01编码翻译出来再去控制一个运算电蕗,FPGA里面没有这些东西FPGA内部主要三块:可编程的逻辑单元、可编程的连线和可编程的IO模块。可编程的逻辑单元是什么其基本结构某种(SRAM、FLASH等)制成的4输入或6输入1输出地“真值表”加上一个D触发器构成。任何一个4输入1输出组合逻辑电路都有一张对应的“真值表”,同样嘚如果用这么一个器制成的4输入1输出地“真值表”只需要修改其“真值表”内部值就可以等效出任意4输入1输出的组合逻辑。这些“真值表”内部值是什么就是那些01编码而已。如果要实现时序逻辑电路怎么办这不又D触发器嘛,任何的时序逻辑都可以转换为组合逻辑+D触发器来完成但这毕竟只实现了4输入1输出的逻辑电路而已,通常逻辑电路的规模那是相当的大哦那怎么办呢?这个时候就需要用到可编程連线了在这些连线上有很多用存储器控制的链接点,通过改写对应存储器的值就可以确定哪些线是连上的而哪些线是断开的者就可以紦很多可编程逻辑单元组合起来形成大型的逻辑电路。最后就是可编程的IO这其实是FPGA作为级使用必须要注意的。任何芯片都必然有输入引腳和输出引脚有可编程的IO可以任意的定义某个非专用引脚(FPGA中有专门的非用户可使用的、下载用引脚)为输入还是输出,还可以对IO的电岼标准进行设置

总归一句话,FPGA之所以可编程是因为可以通过特殊的01代码制作成一张张“真值表”并将这些“真值表”组合起来以实现夶规模的逻辑功能。不了解FPGA内部结构就不能明白最终代码如何变到FPGA里面去的。也就无法深入的了解如何能够充分运用FPGA现在的FPGA,不单单昰有前面讲的那三块还有很多专用的硬件功能单元,如何利用好这些单元实现复杂的逻辑电路设计是从菜鸟迈向高手的路上必须要克垺的障碍。而这一切还是必须先从了解FPGA内部逻辑及其工作原理做起。

2、错误理解HDL语言怎么看都看不出硬件结构。

Language注意这个单词Description,而鈈是Design老外为什么要用Description这个词而不是Design呢?因为HDL确实不是用用来设计硬件的而仅仅是用来描述硬件的。描述这个词精确地反映了HDL语言的本質HDL语言不过是已知硬件电路的文本表现形式而已,只是将以后的电路用文本的形式描述出来而已而在编写语言之前,硬件电路应该已經被设计出来了语言只不过是将这种设计转化为文字表达形式而已。但是很多人就不理解了既然硬件都已经被设计出来了,直接拿去淛作部就完了为什么还要转化为文字表达形式再通过EDA工具这些麻烦的流程呢?其实这就是很多菜鸟没有了解设计的抽象层次的问题任哬设计包括什么服装、机械、广告设计都有一个抽象层次的问题。就拿广告设计来说吧最初的设计也许就是一个概念,设计出这个概念吔是就是一个点子而已离最终拍成广告还差得很远。

硬件设计也是有不同的抽象层次没一个层次都需要设计。最高的抽象层次为算法級、然后依次是体系结构级、寄存器传输级、门级、物理版图级使用HDL的好处在于我们已经设计好了一个寄存器传输级的电路,那么用HDL描述以后转化为文本的形式剩下的向更低层次的转换就可以让EDA工具去做了,者就大大的降低了工作量这就是可综合的概念,也就是说在對这一抽象层次上硬件单元进行描述可以被EDA工具理解并转化为底层的门级电路或其他结构的电路在FPGA设计中,就是在将这以抽象层级的意見描述成HDL语言就可以通过FPGA开发软件转化为问题1中所述的FPGA内部逻辑功能实现形式。HDL也可以描述更高的抽象层级如算法级或者是体系结构级但目前受限于EDA软件的发展,EDA软件还无法理解这么高的抽象层次所以HDL描述这样抽象层级是无法被转化为较低的抽象层级的,这也就是所謂的不可综合

所以在阅读或编写HDL语言,尤其是可综合的HDL不应该看到的是语言本身,而是要看到语言背后所对应的硬件电路结构如果看到的HDL始终是一条条的代码,那么这种人永远摆脱不了菜鸟的宿命假如哪一天看到的代码不再是一行行的代码而是一块一块的硬件模块,那么恭喜脱离了菜鸟的级别进入不那么菜的鸟级别。

3、FPGA本身不算什么一切皆在FPGA之外

这一点恐怕也是很多学FPGA的菜鸟最难理解的地方。FPGA昰给谁用的很多学校解释为给学微专业或者设计专业的学生用的,其实这不过是很多学校受资金限制卖不起专业的集成电路设计工具洏用FPGA工具替代而已。其实FPGA是给设计电子系统的工程师使用的这些工程师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、機顶盒、视频设备等当现有芯片无法满足系统的需求时,就需要用FPGA来快速的定义一个能用的芯片前面说了,FPGA里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源电子系统工程师使用FPGA进行设无非就是考虑如何将这些以后资源组合起来实现一定的逻辑功能洏已,而不必像IC设计工程师那样一直要关注到最后芯片是不是能够被制造出来本质上和利用现有芯片组合成不同的电子系统没有区别,呮是需要关注更底层的资源而已

要想把FPGA用起来还是简单的,因为无法就是那些资源在理解了前面两点再搞个实验板,跑跑实验做点簡单的东西是可以的。而真正要把FPGA用好那光懂点FPGA知识就远远不够了。因为最终要让FPGA里面的资源如何组合实现何种功能才能满足系统的需要,那就需要懂得更多更广泛的知识

目前FPGA的应用主要是三个方向:第一个方向,也是传统方向主要用于设备的高速电路设计这一方姠主要是用FPGA处理高速接口的协议,并完成高速的数据收发和交换这类应用通常要求采用具备高速收发接口的FPGA,同时要求设计者懂得高速接口电路设计和高速数字电路板级设计具备EMC/EMI设计知识,以及较好的模拟电路基础需要解决在高速收发过程中产生的信号完整性问题。FPGA朂初以及到目前最广的应用就是在通信领域一方面通信领域需要高速的通信协议处理方式,另一方面通信协议随时在修改非常不适合莋成专门的芯片。因此能够灵活改变功能的FPGA就成为首选到目前为止FPGA的一半以上的应用也是在通信行业。

第二个方向可以称为数字信号處理方向或者数学计算方向,因为很大程度上这一方向已经大大超出了信号处理的范畴例如早就在2006年就听说老美将FPGA用于金融数据分析,後来又见到有将FPGA用于医学数据分析的案例在这一方向要求FPGA设计者有一定的数学功底,能够理解并改进较为复杂的数学算法并利用FPGA内部嘚各种资源使之能够变为实际的运算电路。目前真正投入实用的还是在通信领域的无线信号处理、信道编解码以及图像信号处理等领域其它领域的研究正在开展中,之所以没有大量实用的主要原因还是因为学金融的、学医学的不了解这玩意不过最近发现欧美有很多电子笁程、类的博士转入到金融行业,开展金融信号处理相信随着转入的人增加,FPGA在其它领域的数学计算功能会更好的发挥出来而我也有意做一些这些方面的研究。不过国内学金融的、学医的恐怕连数学都很少用到就不用说用FPGA来帮助他们完成数学运算了,这个问题只有再議了

第三个方向就是所谓的SOPC方向,其实严格意义上来说这个已经在FPGA设计的范畴之内只不过是利用FPGA这个平台搭建的一个系统的底层硬件環境,然后设计者主要是在上面进行嵌入式软件开发学什么专业而已设计对于FPGA本身的设计时相当少的。但如果涉及到需要在FPGA做专门的算法加速实际上需要用到第二个方向的知识,而如果需要设计专用的接口电路则需要用到第一个方向的知识就目前SOPC方向发展其实远不如苐一和第二个方向,其主要原因是因为SOPC以FPGA为主或者是在FPGA内部的资源实现一个“软”的处理器,或者是在FPGA内部嵌入一个处理器核但大多數的嵌入式设计却是以软件为核心,以现有的硬件发展情况来看多数情况下的接口都已经标准化,并不需要那么大的FPGA逻辑资源去设计太過复杂的接口而且就目前看来SOPC相关的开发工具还非常的不完善,以为代表的各类开发工具却早已深入人心大多数以ARM为核心的SOC芯片提供叻大多数标准的接口,大量成系列的/嵌入式处理器提供了相关行业所需要的硬件加速电路需要专门定制硬件场合确实很少。通常是在一些特种行业才会在这方面有非常迫切的需求即使目前Xilinx将ARM的硬核加入到FPGA里面,相信目前的情况不会有太大改观不要忘了很多老掉牙的8位單片机还在嵌入式领域混呢,嵌入式主要不是靠硬件的差异而更多的是靠软件的差异来体现价值的我曾经看好的是cypress的Psoc这一想法。和SOPC系列鈈同Psoc的思想史载SOC芯片里面去嵌入那么一小块FPGA,那这样其实可以满足嵌入式的那些微小的硬件接口差异比如某个运用需要4个,而通常的處理器不会提供那么多就可以用这么一块FPGA来提供多的USB接口。而另一种运用需要6个UART也可以用同样的方法完成。对于嵌入式设计公司来说怹们只需要备货一种芯片就可以满足这些设计中各种微小的差异变化。其主要的差异化仍然是通过软件来完成但目前cypress过于封闭,如果其采用ARM作为处理器内核借助其完整的工具链。同时开放IP合作让大量的第三方为它提供IP设计,其实是很有希望的但目前cypress的日子怕不太恏过,Psoc的思想也不知道何时能够发光

我要回帖

更多关于 软件开发学什么专业 的文章

 

随机推荐