数码相机_可编程逻辑入门 (1)

上传人:woxinch****an2018 文档编号:56956122 上传时间:2018-10-17 格式:PPTX 页数:99 大小:2.81MB
返回 下载 相关 举报
数码相机_可编程逻辑入门 (1)_第1页
第1页 / 共99页
数码相机_可编程逻辑入门 (1)_第2页
第2页 / 共99页
数码相机_可编程逻辑入门 (1)_第3页
第3页 / 共99页
数码相机_可编程逻辑入门 (1)_第4页
第4页 / 共99页
数码相机_可编程逻辑入门 (1)_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《数码相机_可编程逻辑入门 (1)》由会员分享,可在线阅读,更多相关《数码相机_可编程逻辑入门 (1)(99页珍藏版)》请在金锄头文库上搜索。

1、数码相机中的 可编程逻辑,郭磐 ,图像获取 交互控制 图像处理 图像显示 图像存储,数码相机的组成,核心器件有哪些? 外围器件有哪些? 电子学系统需要实现哪些功能? 需要一个控制中心图像处理引擎 专为数码相机设计,集图像传感器控制器、自动白平衡、信号处理、图形压缩、存储卡控制和液晶屏显示控制等功能于一身。 追求:最终图像效果、处理速度、耗电量。,图像处理引擎,佳能的DIGIC 4 (DIGital Image Core) 尼康的EXPEED 2 索尼的Bionz 松下的Venus III 奥林巴斯的TruePic III,电子芯片的分类,模拟芯片、数字芯片、AD/DA芯片、混合芯片 数字芯片

2、专用:ASIC(Application Specific Integrated Circuit) 半定制IC/通用可编程IC 能够作为处理核心的芯片(数字芯片) 专用芯片:比如图像处理引擎 通用芯片: CPU、GPU(桌面系统、服务器、工作站) MCU、DSP、CPLD、FPGA(嵌入式),可编程逻辑器件,CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件 FPGA(Field Programmable Gate Array) 现场可编程门阵列 提供了利用基本的逻辑门构建具有一定功能的逻辑器件的平台。 数字逻辑是数字电路的基础,逻辑门是数字电路的基

3、本单元。,Start Here!,课程内容,数字逻辑基础 Verilog HDL语法简介介绍 实验电路板介绍 开发工具操作演示 实验内容安排,1. 数字逻辑基础,什么是数字信号? 所有的数都可以用二进制表示。,0 0000 1 0001 2 0010 4 0100 10 1010,198 1100_0110,更大的数用更多的位数表示,负数可以用规定最高位代表正负来表示,-98 1110_0010 +98 0110_0010,01100010_10001110,MSB(Most Significant Bit) 最高有效位,LSB(Least Significant Bit) 最低有效位,1.

4、数字逻辑基础,什么逻辑运算? 与、或、非,基本逻辑运算通过组合可以构成更复杂的逻辑运算,同或、异或、与非、或非,同或,异或,与非,或非,输出高电平的下限值 VOH(min),输入低电平的上限值 VIL(max),输入高电平的下限值VIH(min),输出低电平的上限值 VOL(max),输入和输出的高、低电平,高、低电平产生的原理,当S闭合,O = 0 V (低电平),当S断开, O = +5 V (高电平),理想开关的两个工作状态:,接通状态:要求阻抗越小越好,相当于短路。 断开状态:要求阻抗越大越好,相当于开路。,1. 数字逻辑基础,逻辑运算可以构成算术运算。 算术加法 0+0=0, 0+1

5、=1, 1+0=1, 1+1=0(进位) 逻辑异或加法减法 移位操作乘法除法,逻辑运算 + 移位操作 所有的二进制操作,1. 数字逻辑基础,逻辑门的组合构成了组合逻辑 加入时钟信号,产生同步节拍,形成了时序逻辑 组合逻辑与时序逻辑,可以构建所有的数字电路。 CPLD/FPGA就是一个构建数字电路平台,提供了大量的基本逻辑单元、布线资源、时钟网络,因此可以构建任何一种数字电路,实现任意的数字逻辑功能。,逻辑运算 + 移位操作 所有的二进制操作,1. 数字逻辑基础,1. 数字逻辑基础,数字电路的基本器件 D触发器(Flip-Flop)、锁存器(Latch) 多路选择器Mux 移位寄存器 计数器 加

6、法器,2. Verilog HDL编程简介,硬件描述语言 HDL(Hardware Description Language) 类似于高级程序设计语言。 它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统所有的逻辑功能。 目前常用的2种HDL语言:VHDL、Verilog HDL Verilog HDL由于其句法根源出自C语言, 相对VHDL易用易学一些。,FPGA 开发流程,FPGA 开发流程,2. Verilog HDL编程简介,模块 模块(module)是Verilog HDL的基本单位,除了编译指令,其它所有的设计代码都必须放在

7、一个或多个模块中 一个模块内部可以使用其它模块,称为实例。上层模块可以引用底层任意层次模块的变量,引用方法为: 实例名.第二层实例名.变量名 模块内部可以包含若干个“块”,2. Verilog HDL编程简介语法,1间隔符: Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。 间隔符包括空格符(b)、TAB 键(t)、换行符(n)及换页符。,2. Verilog HDL编程简介语法,2注释符: 注释只是为了改善程序的可读性,在编译时不起作用。 多行注释符(用于写多行注释): /* - */; 单行注释符 :以/开始到行尾结束为注释文字。,2. Verilog H

8、DL编程简介语法,3标识符: 给对象(如模块名、电路的输入与输出端口、变量等)取名所用的字符串。以英文字母或下划线开始 如,clk、counter8、_net、bus_A 。 关键词:是Verilog语言本身规定的特殊字符串,用来定义语言的结构。 例如,module、endmodule、input、output、wire、reg、and等都是关键词。关键词都是小写,关键词不能作为标识符使用 。,2. Verilog HDL编程简介语法,4逻辑值集合 为了表示数字逻辑电路的逻辑状态,Verilog语言规定了4种基本的逻辑值。,2. Verilog HDL编程简介语法,5常量及其表示 Verilo

9、g HDL中有三类常量: 1) 整型:1, -2, 4b0101, 16o47, 32hEEEEFFFF, . 2) 实数型:1.234, -56.78, 3.6e4, 3) 字符串型:”verilog!” 看做9个8位无符号整数,可用转义特殊字符,例如n, t 下划线符号(_)可以随意用在整数或实数中,它们的数量本身没有意义。它们能用来提高易读性;唯一的限制是下划线符号不能用作为首字符。例如:32b0010_1101_1110_1111 等价于 32b0010110111101111,2. Verilog HDL编程简介语法,5常量及其表示 参数:parameter Verilog允许用参数

10、定义语句定义一个标识符来代表一个常量,称为符号常量,可表示任意数据。定义的格式为: parameter 参数名1常量表达式1,参数名2常量表达式2,;例如:parameter BIT=1, BYTE=8, PI=3.14;parameter LOAD = 4d12, STORE = 4d10;,2. Verilog HDL编程简介语法,变量的数据类型 Verilog HDL 有两大类数据类型。1) 线网类型。net type 表示Verilog结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z。2) 寄存器类型。registe

11、r type表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。寄存器类型的变量具有x的缺省值。,2. Verilog HDL编程简介语法,变量的数据类型线网类型: wire supply0, supply1 tri, wor, trior, wand, triand, trireg, tri1, tri0 例如: wire rdy, finish; /2个1位的连线。 wire 3:0 result; /1个4位的连线(总线) 使用assign赋值,例如:assign rdy = a /result经过20个时间单位后

12、赋值为a*b,2. Verilog HDL编程简介语法,变量的数据类型寄存器类型: reg integer 一般相当于32位的reg(可能更多),但不允许作为位向量访问,用于高层次建模 time, real, realtime例如: reg rdy, finish; /2个1位的寄存器 reg 3:0 result; /1个4位的寄存器 reg 3:0 mem4x64 63:0 /mem4x64为64个4位寄存器的数组,可表示存储器 interger I; /定义一个整数,至少32位,2. Verilog HDL编程简介语法,变量的数据类型,注意: 1. reg并不一定对应为硬件寄存器,可能映

13、射为latch,也可能为连线。 2. 寄存器型变量只能在initial或always内部被赋值。,2. Verilog HDL编程简介语法,变量的数据类型 算术操作符:+, -, *, /, % 关系操作符:, =, 条件操作符:exp ? exp1 : exp2; 连接和复制操作符:exp1, exp2, repexp assign bus_n 3:0 = bus0, bus1, bus2, bus3; /反转 assign bus_n 3:0 = 2bus0, 2bus3; /扩展,2. Verilog HDL编程简介语法,Verilog程序的基本结构 1、VerilogHDL程序由模块构

14、成。每个模块的内容都是嵌在关键词module和endmodule两个语句之间。每个模块实现特定的功能。 2、每个模块先要进行端口的定义,并说明输入(input)和输出(output),然后对模块功能进行描述。 3、除了endmodule语句外,每个语句后必须有分号。 4、可以用/* - */和/对VerilogHDL程序的任何部分做注释。,Verilog程序的基本结构,module mux2to1(a, b, sel, out);input a, b, sel; /定义输入信号output out; /定义输出信号wire selnot; /定义内部节点信号数据类型/下面对电路的逻辑功能进行描

15、述not U1(selnot, sel);and U2(a1, a, selnot);and U3(b1, b, sel);or U4(out, a1, b1); endmodule,结构描述 (门级描述),模块名,数据类型说明,例 用结构描述方式建立门电路Verilog模型,2. Verilog HDL编程简介语法,过程结构 initial语句:只执行一次,并在模拟开始时执行,即在0时刻开始执行。通常用于初始化(例如赋给寄存器一个初始值)、波形产生和仿真控制 always语句:也是在0时刻开始执行,但是在整个仿真期间被反复多次执行,2. Verilog HDL编程简介语法,过程结构 init

16、ial块和always块内部语句的执行顺序 用 = 赋值,顺序执行 用=赋值,并行执行 一个模块中可以包含任意多个initial或always语句。这些语句相互并行执行,即这些语句的执行顺序与其在模块中的顺序无关。一个initial语句或always语句的执行产生一个单独的控制流 注意#的时延控制用法,initial beginreset = 0;a = 4b0101b = 4b1010;#20 reset = 1;#50 $display(“sum is %d”, sum);$finish; end,always (posedge clk or negedge reset) beginif(!reset) begin data = 0;end else begindata = din;end end,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号