软件技术是学什么

软件技术是学什么,第1张

软件技术主要研究软件开发、移动编程技术等方面基本知识和技能,进行系统软件开发、软件测试、系统维护等。例如:Office软件等办公软件的开发与测试,手机中iOS、Android系统开发与迭代,各类软件的测试与维护等。

软件技术就业方向:

1、通信工程师

如果软件掌握的不错,同时也对通信这方面有兴趣,完全可以选择当通信工程师,通信工程主要是计算机和硬件之间的通信,所以对一个人的通信知识或者是代码书写技能也是非常严格的,因此,通信工程师也不失为一个很好的选择。

2、Java开发工程师

软件工程就是一直不断训练你的逻辑和写代码能力,而且Java开发工程师薪资也是十分的可观。

3、信息安全工程师

一般是对公司的网络进行维护,定期对漏洞进行安全评估扫描,负责公司各业务系统,APP及客户端软件定期检查,并对发现的重大漏洞问题定制解决方案,同时负责内部信息安全培训。

数字电路按照是否具有记忆功能通常可分为组合逻辑电路和时序逻辑电路。

用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。

由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二进制数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。

产品特点:

1、 同时具有算术运算和逻辑运算功能。

数字电路是以二进制逻辑代数为数学基础,使用二进制数字信号,既能进行算术运算又能方便地进行逻辑运算(与、或、非、判断、比较、处理等),因此极其适合于运算、比较、存储、传输、控制、决策等应用。

2、 实现简单,系统可靠。

以二进制作为基础的数字逻辑电路,可靠性较强。电源电压的小的波动对其没有影响,温度和工艺偏差对其工作的可靠性影响也比模拟电路小得多。

3、 集成度高,功能实现容易。

集成度高,体积小,功耗低是数字电路突出的优点之一。

电路的设计、维修、维护灵活方便,随着集成电路技术的高速发展,数字逻辑电路的集成度越来越高;

集成电路块的功能随着小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)、超大规模集成电路(VLSI)的发展也从元件级、器件级、部件级、板卡级上升到系统级。

电路的设计组成只需采用一些标准的集成电路块单元连接而成。对于非标准的特殊电路还可以使用可编程序逻辑阵列电路,通过编程的方法实现任意的逻辑功能。

图11

程序如下:

library IEEE;

use IEEESTD_LOGIC_1164ALL;

use IEEESTD_LOGIC_ARITHALL;

use IEEESTD_LOGIC_UNSIGNEDALL;

entity xuan21 is

Port ( alarm,a,b: in std_logic;

y:out std_logic);

end xuan21 ;

architecture one of xuan21 is

begin

process(alarm,a,b)

begin

if alarm='0' then y<=a;else y<=b;

end if;

end process;

end one;

仿真波形如下图12:

图12

(2)三位二选一:

模块图如图13。用以进行正常计时时间与闹铃时间显示的选择,alarm输入为按键。当alarm按键未曾按下时二选一选择器会选择输出显示正常的计时结果,否则当alarm按键按下时选择器将选择输出显示闹铃时间显示。

图13

程序如下:

library IEEE;

use IEEESTD_LOGIC_1164ALL;

use IEEESTD_LOGIC_ARITHALL;

use IEEESTD_LOGIC_UNSIGNEDALL;

entity x213 is

Port ( alarm : in std_logic;

y:out std_logic_vector(3 downto 0);

a,b: in std_logic_vector(3 downto 0));

end x213;

architecture one of x213 is

begin

process(alarm,a,b)

begin

if alarm='0' then y<=a;else y<=b;

end if;

end process;

end one;

仿真结果如下图14:

图14

8、整点报时及闹时:

模块图如图15。在59分51秒、53秒、55秒、57秒给扬声器赋以低音512Hz信号,在59分59秒给扬声器赋以高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。当系统时间与闹铃时间相同时给扬声器赋以高音1024Hz信号。闹时时间为一分钟。

图15

程序如下:

library IEEE;

use IEEESTD_LOGIC_1164ALL;

use IEEESTD_LOGIC_ARITHALL;

use IEEESTD_LOGIC_UNSIGNEDALL;

entity voice is

Port ( hou1,huo0,min1,min0,sec1,sec0,hh,hl,mh,ml: std_logic_vector(3 downto 0);

in_1000,in_500:in std_logic;

q : out std_logic);

end voice;

architecture one of voice is

begin

process(min1,min0,sec1,sec0)

begin

if min1="0101" and min0="1001" and sec1="0101" then

if sec0="0001" or sec0="0011" or sec0="0101" or sec0="0111"

then q<=in_500;

elsif sec1="0101" and sec0="1001" then q<=in_1000;

else q<='0';

end if;

else q<='0';

end if;

if min1=mh and min0=ml and hou1=hh and huo0=hl then

q<=in_1000;

end if;

end process;

end one;

仿真波形如下图16

图16

9、顶层原理图:

三、感想

通过这次设计,既复习了以前所学的知识,也进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在画顶层原理图时,遇到了不少问题,最大的问题就是根本没有把各个模块的VHD文件以及生成的器件都全部放在顶层文件的文件夹内,还有就是程序设计的时候考虑的不够全面,没有联系着各个模式以及实验板的情况来编写程序,以至于多考虑编写了译码电路而浪费了很多时间。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示

:在分频模块中,设定输入的时钟信号后,却只有二分频的结果,其余三个分频始终没反应。后来,在数十次的调试之后,才发现是因为规定的信号量范围太大且信号的初始值随机,从而不能得到所要的结果。还有的仿真图根本就不出波形,怎么调节都不管用,后来才知道原来是路径不正确,路径中不可以有汉字。真是细节决定成败啊!总的来说,这次设计的数字钟还是比较成功的,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

四、

参考资料:

1、潘松,王国栋,VHDL实用教程〔M〕成都:电子科技大学出版社,2000(1)

2、崔建明主编,电工电子EDA仿真技术北京:高等教育出版社,2004

3、李衍编著,EDA技术入门与提高王行西安:西安电子科技大学出版社,2005

4、侯继红,李向东主编,EDA实用技术教程北京:中国电力出版社,2004

5、沈明山编著,EDA技术及可编程器件应用实训北京:科学出版社,2004

6、侯伯亨等,VHDL硬件描述语言与数字逻辑电路设计西安: 西安电子科技大学出版社,1997

7、辛春艳编著,VHDL硬件描述语言北京:国防工业出版社,2002 就这些

第1章 数字逻辑的基础知识

引言

11 数字电路的信号

111 模拟量与数字量

模拟量是指变量在一定范围连续变化的量;也就是在一定范围(定义域)内可以取任意值。数字量是分立量不是连续变化量只能取几个分立值二进制数字变量只能取两个值。

数字量是物理量的一种。一类物理量的变化在时间上和数量上都是离散的。它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间。同时,它们的数值大小和每次的增减变化都是某一个最小数量单位的整数倍,而小于这个最小数量单位的数值没有任何物理意义。这一类物理量叫做数字量。

112 数字电路及其信号

用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二值数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。

12 数字电路所用的数制

121 进制数

122 十进制数和二进制数间的互相转换

123 八进制数和十六进制数

13 数字电路常用的码制与编码

131 原码、反码和补码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前

增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

原码10010= 反码11101 (10010,1为符号码,故为负)

补码(two's complement) 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。

132 BCD码(二-十进制编码)

133格雷(IGray)码

14 逻辑代数基本知识

141 基本运算

142 复合运算

143 逻辑代数的定律

144 逻辑函数的标准形式

145 逻辑函数的化简

本章小结

思考题及习题

第2章 晶体管开关及门电路

引言

21 晶体管的开关特性及简单门电路

211 二极管的开关特性

212 双极晶体管的开关特性

213 MOS管的开关特性

214 分立元件构成的门电路

22 TTL(三极管-三极管逻辑)门电路

221 TTL与非门的电路结构与工作原理

222 TTL与非门的特性

223 其他类型TTL门电路

224 TTL集成电路的系列产品

23 其他类型双极型数字集成电路

231 ECL(发射极耦合逻辑)门电路

232 IIL(集成注入逻辑)门电路

24 CMOS集成门电路

241 CMOS反相器的电路结构和工作原理

242 CMOS反相器的输入特性和输出特性

243 其他CMOS集成门电路

244 TTL电路与CMOS电路间的连接

245 低电压CMOS电路及逻辑电平转换器

246 CMOS集成电路系列产品

247 CMOS集成电路使用注意事项

本章小结

思考题及习题

第3章 组合逻辑电路

引言

31 组合逻辑电路的一般分析与设计

311 组合逻辑电路的一般分析

312 组合逻辑电路的设计(用门电路)

32 常用组合逻辑电路及其中规模集成器件

321加法器

加法器是产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。常用作计算机算术逻辑部件,执行逻辑 *** 作、移位与指令调用。在电子学中,加法器是一种数位电路,其可进行数字的加法计算。在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。加法器可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。由于负数可用二的补数来表示,所以加减器也就不那么必要。

322编码器

323 译码器及数据分配器

324 数据选择器

325 图案移位器

326 数码比较器

327 奇偶校验码的产生器/校验器

33 用中规模集成器件设计组合逻辑电路

331 用数据选择器实现组合逻辑电路

332 用译码器、加法器实现组合逻辑电路

34 组合逻辑电路的冒险

341 竞争与冒险现象

342 冒险的判断、避免及消除

本章小结

思考题及习题

第4章 触发器与波形变换、产生电路

引言

41 脉冲信号

411 脉冲信号的描述

412 波形的产生与变换

42 触发器

421 基本RS触发器

422 同步RS触发器

423 主从延迟型JK触发器

424 边沿型D触发器

425 边沿型JK触发器

426 触发器的类型

427 各类触发器的开关工作特性及抗干扰能力比较

43施密特电路

431 用门电路组成的施密特电路

432 集成施密特电路

433 施密特电路的应用

44 单稳态电路

441 用门电路组成的单稳态电路

442 集成单稳态电路

443 单稳态电路的应用

45 多谐振荡器

451 用门电路组成的多谐振荡器

452 用施密特电路构成的多谐振荡器

453 石英晶体多谐振荡器

46 555集成定时器

461 555集成定时器的工作原理

462 555集成定时器的应用举例

本章小结

思考题及习题

第5章 时序逻辑电路

引言

51 时序逻辑电路的基本概念

52 时序逻辑电路的描述

53 锁存器、寄存器、移位寄存器

531 锁存器

532 寄存器

533 移位寄存器

534 寄存器的应用

54 计数器

541 同步计数器

542 异步计数器

543 N进制计数器

544 计数器的应用实例

55 时序逻辑电路的设计

551 原始状态图和原始状态表的建立

552 状态化筒

553 状态分配

554 状态转移和激励列表

555 激励方程和输出方程

556 逻辑图

557 输出与输入之间的关系

558 自启动与非自启动

559 异步时序逻辑电路的设计

5510 输出方波的奇数分频器

56 序列信号发生器

561 移存器型序列信号发生器

562 计数器型序列信号发生器

563 LFSR(线性反馈移存器)型序列信号发生器

本章小结

思考题及习题

第6章 存储器与可编程逻辑器件

引言

61 存储器

611 SAM(顺序存取存储器)

612 RAM(随机存取存储器)

613 ROM(只读存储器)

62 可编程逻辑器件

621 可编程器件的逻辑表示法

622 简单可编程逻辑器件

623 高密度可编程逻辑器件

624Altera公司的开发系统QuartusⅡ

本章小结

思考题及习题

第7章 硬件描述语言(VHDL)

引言

71 VHDL程序的组成

711 实体

712 构造体

713 包集合

714 库

715 配置

72 VHDL的标识符、客体、数据类型和 *** 作符

721 VHDL的标识符

722 VHDL的客体

723 VHDL的数据类型

724 子类型

725 属性

726 VHDL的运算 *** 作符

73 VHDL构造体的描述方法

731 顺序描述语句

732 并发描述语句

733 断言语句

74 数字电路的VHDL设计举例

741 基本逻辑门的VHDL设计源文件

742 组合逻辑电路的VHDL设计源文件

743 时序逻辑电路的VHDL设计

744 只读存储器(ROM)的VHDL设计

本章小结

思考题及习题

第8章 可测性设计及边界扫描技术

引言

81 概述

82 可测性设计

821 特定设计

822 结构设计

83 边界扫描测试BST

831 边界扫描设计基本结构

832 边界扫描测试的工作方式

833 边界扫描单元的级联

834 边界扫描描述语言(BSDL)

本章小结

思考题及习题

第9章 数模与模数转换

引言

91 D/A转换器

911 D/A转换器的基本工作原理

912 二进制权电阻网络D/A转换器

913 倒T形电阻网络D/A转换器

914 权电流型D/A转换器

915 D/A转换器的主要性能参数

916 串行输入的D/A转换器

92 A/D转换器

921 A/D转换器的基本工作原理

922 并行比较型A/D转换器

923 逐次渐近型A/D转换器

924 积分型A/D转换器

925 A/D转换器的主要技术指标

926 串行输出的A/D转换器

93 D/A转换器和A/D转换器的应用

931 D/A转换器应用举例

932 A/D转换器应用举例

本章小结

思考题及习题

附录1 逻辑函数列表化简法C语言源程序

附录2 国家标准图形符号简表

附录3 英汉名词对照(以英文字母为序)

主要参考文献

存储器可分为三种类型,分别是随机存储器只读存储器外存储器。随机存储器也叫主存,是与CPU直接交换数据的内部存储器。

2存储器单元实际上是时序逻辑电路的一种。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM),两者的功能有较大的区别,因此在描述上也有所不同。存储器是许多存储单元的集合,按单元号顺序排列。每个单元由若干三进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似,故在VHDL语言中,通常由数组描述存储器。

3存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。

相关补充

总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。

从技术上来讲,需要从如下两个大类知识点上去积累:

C/C++通用开发知识

音视频开发的主要编程语言就是C和C++。

这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。

可以重点关注如下几个方面:

计算机系统的底层工作原理

*** 作系统原理

程序的编译、链接和加载机制

C/C++语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题

软件设计原则和设计模式

数据结构和算法

多线程并发编程原理

网络编程

跨平台

*** 作系统API

软件调试

2 音视频领域专业知识

这块属于从事音视频行业的专业知识。

这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。

音视频的开发可以分为两大块,涉及的内容大致如下:

音视频客户端开发

客户端应用开发

音视频引擎开发

音视频引擎SDK

音视频引擎框架

音视频引擎功能模块

音/视频采集

音/视频渲染

音/视频数据处理

音/视频编/解码

录制

串流

音视频同步

流媒体服务器开发

通用服务器开发知识,需要关注如下几个点

高稳定性

高性能

高并发

高可用

流媒体服务器开发

SFU vs MCU

流媒体协议转换

弱网下的音视频传输协议

录制 & 转码

上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C++通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。

而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。

已经给大家准备好了安装环境和各种视频资料,资料放在自己的群里面:832218493(需要自取)

视频数据可以通过如下方式获得:

USB摄像头

专业的硬件视频采集卡(有软压卡和硬压卡之分)

网络摄像机(支持RTSP协议)

*** 作系统提供的屏幕录制API

读取音视频文件并解码

订阅流媒体服务器上的流

音频数据可以通过如下方式获得:

声卡

扬声器播放声音的回环采集(依赖 *** 作系统的API)

读取音视频文件并解码

订阅流媒体服务器上的流

支持音频输入的网络摄像机(支持RTSP协议)

支持音频输入的视频采集卡

在手机上, *** 作系统的SDK会提供相关的音视频采集接口

音/视频渲染

视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL

可以通过开源库SDL来快速实现渲染模块

在Windows下使用DirectShow框架, *** 作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)

在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块

音/视频数据处理

这些模块基本是在编码前或解码后,对视频或音频的原始数据进行某种算法上的处理

视频处理主要包括分辨率转换、色彩空间转换、帧率转换、图像增强、多路视频拼接、添加字幕、添加LOGO等,这块对整体的性能影响比较大,往往需要使用SIMD指令进行汇编优化或使用GPU算法进行加速

音频处理主要包括回声消除、噪声抑制、自动增益、混音等,这块往往会涉及比较多的信号处理和数学知识,是音频中比较复杂的一块

音/视频编/解码

视频编/解码

要理解视频的基本编码原理,熟悉视频编码的关键参数和码流格式

目前使用比较多的是H264,H265开始逐步在使用,其他的视频编码也有很多,如AVS、VP8、VP9等

视频编码对音视频引擎的性能影响比较大,这块基本都是需要使用GPU加速的,目前的Intel集显对H264和H265支持还是比较好的,NVIDIA的独立显卡在编码上存在路数的限制;手机上一般都有对应的硬件加速模块;在性能较好的硬件上,可以考虑开源的X264

音频编/解码

要理解音频的基本编码原理,熟悉音频的关键参数和码流格式

目前使用比较多的是AAC,其他的音频编码也有很多,如G711、G722、OPUS等

在PC上,一般音频的相关模块对性能的影响不明显,但在海思嵌入式系统上,音频模块对性能的影响就不能忽略,因为海思基本没有提供音频的硬件加速模块,而ARM CPU性能也有点弱

录制

需要理解FLV、MP4、TS等容器格式

对于特殊的录制方式要注意软件的处理方式,例如,加片头和片尾的录制功能,追加录制

MP4录制要注意moov box放在文件开始或结束对录制文件的写入和点播的影响

录制时音视频均匀混合的策略

串流

理解视频互动、直播和点播的工作原理

关键评价指标

延迟

首屏时间

同步

流畅性

画质/音质

理解下述的几种音视频传输协议

RTMP

>

以上就是关于软件技术是学什么全部的内容,包括:软件技术是学什么、数字电路按照是否有记忆功能、VHDL数字时钟完整程序代码(要求要有元件例化,并且有按键消抖),谢谢啦啦啦啦等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10214246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存