登录
首页 » Others » 华为面试数字芯片提纲.pdf

华为面试数字芯片提纲.pdf

于 2021-05-07 发布
0 296
下载积分: 1 下载次数: 9

代码说明:

本人面试华为海思数字芯片,总结出一份应对数字芯片面试的复习材料华为面试数字芯片提纲解答以及要点备注1、时序逻辑/组合逻辑时序逻辑电路主要由组合逻辑电路和触发器等记忆元件组成,输出不仅取决于当前输入,还和电路原米状态有关(这里原来状态是指的中间的触发器等记忆元件部分的端口值也可能会影响到当前的电路总的输出);组合逻辑电路主要由组合逻辑器件构成,电路无存储元件,输出仅仅取决于当前的输入。同步逻辑/异步逻辑同步逻辑是指的电路驱动时钟是有固定因果关系的逻,异步熤辑是电路驱动时钟之间没有固定因果关系的逻辑。通常同步逻辑电路的驱动时钟来源于同一个时钟源产生的相同时钟或者相位差可预知的不同时钟,这里不包括相位差在一定时钟周期内(例如1000ck)依然无法确定公共周期的同源时钟;异步逻辑的电路驱动时钟来自不同源时钟或者相位差关系不确定的时钟。同步时钟/异步时钟同步时钟指的是时钟源来自于同一个时钟源生成的时钟,其相位差可计算预知,这里不包拈来白同一时钟源但是在一定时钟周期内(例如1000ck)依然无汯确定公共周期的时钟,通常为由PLL生成的非整数分频或者倍频时钟。异步时钟是指的相位差无法预测的时钟,通常来自于不同的时钟源。2、亚稳态的概念/可能出现的场合和抑制手段亚稳态是指触发尜的建立时间或者保持时间不能满足时触发尜的输岀介于0或者1两者之间的某个不稳定态。理想的触发器在时钟到來时刻采样数据,但现实之中时钟边沿通常具有一定斜率,因此数据需要在时钟到来的前后各一段时间内保持稳定,使得触发器能够准确采样数据,否则就可能岀现亚稳态。亚稳态通常出现在同步时钟驱动电路的异步复位信号来临和消失的时候,或者是异步时钟域之冋数据传递的时候。前者解决方案是釆用同步复位(通常会导致电路逻辑资源占用面积增加)/或者是异步复位同步释放方式避免亚稳态;后者通常考虑用昦步FFo,双端口RAM,双触发器,或者是握于杋制等方法进行冋步ε比外还有例如降频,使用速度较快的触发器,改善时钟质量也会有一定效果。3、异步FIFO原理/FFO的深度计算/同步FFO/要求自凵写异步FFO代码/自凵尝试添加约束(H: Desktop Hardware study Async _ FIFO)异步FFO主要用于实现异步时钟域之间的数据传输。异步F|FO由以下几部分构成。●BRAM/DRAM组戍的缓冲区。用于缓存数据流,其深度的设定需要根据输入输岀数据的吋钟差别以及最大连续输入/输岀数据量确定。读写指针。其变化需要根椐FFO的空满状态以及当前的读写请求指令共同确定。当缓存为空则不读,读指针不变;当缓存为满不可写,写指针不变。空满状态标志。由于异步FFO工作在不同时钟域,因此对空满状态的判断依赖于不同时钟域的读指针和写指针。为了便于区分“快一圈”的现象,可以考虑将指针位宽多设置一位,当最髙位相同时候,读指针等于写指针认为是读空,当最高位不同的吋候,读指针等于写指针认为是写满●同步电路。由于两者读写指针比较是在不同时钟域下进行,因此为了避免亚稳态需要进行同步设计。此处通常采用格雷码进行比较(传输端首先 BIN TO GRAY,经过两级触发器在目的端同步,然后 GRAY TO BIN,进行下一步的比较,得出空满状态),保证一次只有一位数据变化,利用格雷码结合两级触发器进行同步后,可以严格保证至少数据不会出错(起码是原地踏步,不会造成满状态写入的情况),中间加的两级触发器公对实际状态做延迟比较(避免了空读和满写),也属于保守预估,最多是不是真空/真满情况下告知空淸,但是不会导致数据出错,属于保守的方法●FFO深度计算,计算主要考虑最坏的情况,例如100wclk里血进来80个这种,需要考虑200个时钟内连续进米160个的情况,然后计算深度也是根据“平均进米一个出去几个,然后乘以最大连续量即可得到FFO深度”这样的方式考虑最大深度同步FFO由」驱动时钟同步,因此可省去中闩同步器以及格雷码编码机制,其作用原理和异步FIFO类似4、双端口RAM的实现/要求自己写双端口RAM(H: Desktop Hardware study async_ Dual _port ram)FPGA内部RAM资源分为 Block ram和 Distribute ram,前者一殷用于大量数据的缓存,后者多用于小部分数据缓存。就速度而言由于 Distribυ ute ran利用FPGA内部 Slicer的LUT存储资源,少量存储的话速度比较快,但是大量存储会对布线造成影响,难以保让时序。FPGA可以配置 Single-port-ram, Simple-port-ram,True- port-ram等形式的RAM,读写模式有 write-first,read-frst,no- change等模式, write-first表明输出端口的数据和写入的数据相冋, read-first表明输出端口的数据为当前地址之前存储的数据,no- change表明输出数据为写入之前一刻的数据不变;Single- port-ram同时只能进行读或写操作; True-port-ram可同时进行读写操作,但是要避免地址冲突,不能两个端口同时对一个地址写入, Simple- port-ram实际上是 True-port-ram只开启了A端口的写入和B端口的输出。5、两级触发器同步/应用场合/MTBF的计算以及2FF的计算两级触发器通常用于异步时钟域之间的单比特信号传输,通常是控制信号。其扣制亚稳态传播的原理并不是避免亚稳态的发生,也无法避免出错信号的继续传输,而是尽量减少亚稳态传播的概率。根据触发器MTBF(平均故障时问间隔)计算,一缬触发器的MTBF=(e^(tmet/c1)/c2*f*a)两级触发器MTBF=(MTBF1)*MTBF2),相当」不稳定态在第一级触发器后被阻断了传播。如果条件更苛刻可考虑三级触发器。6、握手机制/代码(H: Desktop Hardware study async dual_ port ram握于机制通常用于数据传输速率要求不高但要求准确的场合,两边的握手信号都需要各自时钟域的同步器进行同步。当接收端经过冋步电路接收到req信号后锁存总线数据,然后发岀ack信号,ack经过冋步电路后到达发送端,发送端接受后撤销req信号,接收端也撤销掉ack信号,一次握手完成7、同步复位/异步复位/异步复位同步释放/三者比较/代码同步复位指的是时钟有效沿来临的时候进行复位操作,冋步复位使得电路为冋步电路,能够利于仿真,缺点是要求复位信号要大于一个周期,否则无法保证成功复位,此外综合出米的电路实际上并没有利用器件的复位端,而是在输入端插入额外的逻辑电跻,这样増加了额外的逻辑资源消耗。异步复位是指的在仼何时候只要复位信号有效即可复位,不占用额外的逻辑资源,充分利用器件的复位引脚,但是由于来临和结束时间未知,容易引起亚稳态现象对于FPGA的Fip-Fop,一般有同步复位,置位引脚RST/S和异步复位,置位引脚CLR/PRE,对于同步复位,需要引入额外的MUⅹ电路控制RST/S,对资源有一定的占用比较理想的方式是异步复位同步释放,既充分利用了器件的复位引脚,又能够有效避免亚稳态的产生。8、恢复时间/去除时间/ positive or negetive or global skew/ jitter/Recovery time(恢复时间)是指的异步控制信号(例如复位信号)在被断言后到下一个时钟沿的最短时间Recovery time is the minimum amount of time required between the release of an asynchronous signal from theactive state to the next active clock edge.(类比建立时间)( Example: The time between the reset and clock transitionsfor a flip-flop if the active edge occurs too soon after the release of the reset the state of the flip-flop can be unknownUFF5UFF6CDN-aCKNbCKCLKPRemoval time(去除吋间)是指异步控制信号在吋钟沿后需要保持稳定的吋间。 Removal time specifies theminimum amount of time between an active clock edge and the release of an asynchronous control signal.(类比保持时间)这个异步控制信号可以来自于“异步复位同步释放产生的复位信号,如下图”。positive or negetive or globa|skeW分别表明相比| atch clock edge的延迟为正/负/最大延迟减去最小延迟Clock jitter指的是实际周期和理想厝期之间产生的偏差,jter通常由时钟发生器电路,噪声,电源变化引起9、触发器组成/锁存器组成/区别触发器通常包括SR触发器,」触发器,D触发器,T触发器;SR锁存器由与非门或者或非门组成,SR触发由时钟控制逻辑加上双与非门/或非门组成,还有门控SR触发器将时钟换为使能即可。四状态分别为保持/0/1/不允许。不允许态主要是全1/全0同时翻转为0/1不能确定哪个逻辑元件最先变成0/1,从而导致下一时刻不定态D触发器由时钟边沿触发,锁存数据,D触发器是FPGA中的主要元件,T发器作用是翻转信号Q00-1DcLK-(LDLa触发器对边沿敏感,锁存器对电平敏感10、脉冲检测电路(非同步时钟如何处理,快到慢,慢到快)对于慢时钟到快时钟的脉冲检测电路,由于脉冲长度一般大于接收端一个时钟周期,可以利用两级触发器结合一个与门和反相器电路实现单周期脉冲的传输,如图1;对于快时钟到慢时钟区域的检测电路,由于脉冲长度一般较小,可能导致慢时钟区域检测不到,因此可借助脉冲信号作为触发器的时钟信号,然后利用接收端信号重新复位该触发器信号即可,如图2对于相同时钟的脉冲检测电路,可以利用两级触发器结合与门和非门电路,类似方案一11、可综合和不可综合概念/ timescale的理解可综合是指的代码能够被EDA工具映射为具体的逻辑电路,能够在硬件端实现的语句;不可综合指的无法被映射为只体的电路在哽件端,通常用于仿真阶段timescale是指的吋间维度的常量,用于仿真阶段,由吋间最小单元和时间精度两部分组成,例如 timescale1ns/1000s,意思是时间最小延迟单元为1ns,按照1005的精度进行换算,#5.22代表延迟52*100p5,如果是1ns/1s则代表延迟5220s,如果遇到一个模块包含其他模块的情况则精度按照最小的精度计算。精度越高会导致仿真的复杂度越大,仿真需求时间也就越久。12、组合逻辑环路概念缃合逻辑需要避免牛成环路,即绢合逻辑输岀端不绎过仟何时序逻辑就反馈到输入节点形成的环路,这样公产生振荡和毛刺等现象,而且会出现无法预知的结果。这样的组合逻辑坏烙的功能完全依赖丁逻辑元件的延迟和布线延迟,具有很大的不确定性。13、静态时序分析/动态时序分析/二者对比静态时序分析(STA)通过遍历系统中所有路径来计算每条路径是否满足时序要求。无需外部信号激励的输入,只需要按照设计要求作岀对应约束即可。静态时序分析不能分析电路逻辑功能是否满足需求,只能测试设计是否满足时序要求,系统能否在要求的时钟速率下正常运行。静态时序分析的速度较快。动态时序分析是指的对系统生成测试向量并查看输出结果是否满足设计要求的方法。动态时序分析能够验证系统的逻辑功能,但难以通过输入向量测试到所有路径,而且随着输入信号数量增加,验证复杂度会越米越大。14、建立时间/保持时间/数据到达时间/数据需求时间/建立时间裕量/保持时间裕量建立时间( (setup time)是指的时钟边沿到来之前数据保持稳定的最少时间。保持时间( hold time)是指的时钟边沿到来后数据保持稳定的最少时间。数据到达吋间( data arrival time)= Latch+Tlka+Tcq+ Logic建立时间的数据需求时间 data required time/ setup)= Capture+llkb-Tsu- Uncertainty保持时间的数据需求时间 data required time/hod)= Latch+Tk+Thd- Uncertainty( Uncertainty-还是+存疑)建立时间裕量( setup slack)=( data required time- data arrival time)=T-Tsu-(Tcq+ Logic)+ Skew保持时间裕量( hold slack)=( data arrival time- data required time)= Skew+Thd-(Tcq+ Logic15、四类时序路径及起点终点/完整的时序路径包含三部分/建立时间检查,保持时间检查/恢复时间检查,去除时间检查/检查违例的解决方案Start point-All input ports/pins or clock ports /pins of sequential cells are considered as start pointsEnd points-All output ports/ pins or d pin of sequential cells are considered as end pointsA.输入端口到第一级寄存器的数据输入D端之间路径B.最后一级寄存器输出Q端到输出端口之间路径C.系统内部寄存器的时钟端口CLK到下一级寄存器的数据输入端口D之间路径D.输入端口经过组合逻辑到输出端口之间路径个完整的时序路径包括源时钟路径(时钟端到当前寄冇器的时钟输入端),数据跤径(当前寄存器时钟输入端到卜一级寄存器数据输入端),目的时钟路径(时钟端到卜一级寄存器的时钟输入端)建立时间检查上要看数据路径的最大延迟路径,两级寄存器时钟skew最小的情况,淸足建立时间需要有:T+Tskew-Tsetup >(Tcq +Logic保持时间路径主要看数据路径的最小延迟路径,两级寄存器时钟skew最大的情况,淸足保持时间需要有:(cq+Tlogic)> Thd+ Tskew恢复时闩检査和去除时冋检査比较类似建立时间和保持时间检查,检查方式是一样的,主要看这个异步控制信号(通常是经过“例如异步复位同步释放生成的的复位信号”后传递给寄存器的复位信号)到达的时间是否和时钟边沿满足一定的时间关系,否则可能导致复位失败或者控制失败对于建立时间违例,可以考虑对较大的组合逻辑插入寄存器增加一级流水线,或者是考虑降低时钟频率,或者是考虑优化组合逻辑使之延迟降低;对于保持时间违例可以考虑插λ buffer或者两级反相器对效据路径实现延迟。16、时序约束/时钟约束/输入输出约束/时序例外约束/多周期路径约束( Multicycle paths)/伪路径约束( Falsepaths/ min-max约束/ set bus skew吋序约束是指的对电路的吋序提出要求,并在时序约束的基础上检验系统电路是否能够满足设计需求。●时钟约束是指的对系统中出现的时钟信号添加的限定条件,主要有以下类别:1) Primary clock(通过引脚输入系统) creat clock- name clk in- period10- waveform05}[ get ports clk2) Virtual clock(并未连接到系统的任何端口,只是用来做输入信号的参考,而该信号按照这个虚拟时钟的速率传输,只是这个时钟也没有接到系统任何韶位。可以理解为上游芯片的一个数据时钟,只是这个时钟没有接入系统)tcl语言描述为 create clock- name virtual clk-period103) Generated clock(通过PLL或者内部逻辑,如计数分频生成的吋钟) example1: create generated clock-nameclk div2 -source [get_ports clkin]-divide by 2 [get pins clk div 2]; example2: create generated clock -nameclk div_ mul-source [get_pins mmcmo/ clkin]-multiply by 4 -divide by 3 [get_pins mmcmo/clkout4) Clock groups(主要对异步时钟组之间约束,避免对异步时钟之间进行无效的时序分析,例如两个独立的时钟以及他们生成的时钟网络之间,或者是虽然来自同一个时钟源但是牛成的时钟在1000ck内无法确定公共周期的时it i [a )set clock groups -name async clk -asynchronous- group clk1-group clk 2 set clock groups-name clkunexclusive-group clko-group clk1;5) Clock latency(由于EDA工只通常会自动计算内部网络的时钟延迟,因此通常只需要提供器件外部时钟走线延iRRP H)set clock latency-source-early 0.2 [get ports sysclk]; set clock latency -source -late 0. 5 [get ports sysclk6) Clock jitter (E A input jitter FA system jitter) set input jitter sysclk 0.3 set system jitter 0.117) Clock uncertainty(为特定的时钟或者时钟之间约束) set clock uncertainty0.1[ get clocks clk];set clock uncertainty 0. 2 from [get_ports clk1] to [get clocks clk2输入输出约束1) set_input delay(用于确定和系统某个时钟相关的输入信号的外部路径延迟,通常取决于外部器作输出的最后一级寄存器的Tcq和中间走线延迟。 Consequently, the input delay value can be positive or negative, depending on theclock and data relative phase at the interface of the device,这个相关的时钟可以来自于系统的某个时钟或者虚拟时钟)example 1: set_input delay -clock sysclk [get_ ports din]; example 2: set_ input_ delay -clock sysclk-max 4 [get_ports din]example3: create clock -name clk virtual- period 10set input delay -clock clk virtual -min 2 [ get ports din22) set output delay(用于确定和系统某个时钟相关的输岀信号的外部路径延迟,通常取决于外部走线延迟和下游芯片第一级输入寄存器的建立时冋和保持时冋)exεmple: set output delay- clock sysclk-min2[ get ports dout●时序例外包含多周期路径约束,伪路径约束,最大最小延迟约束1) Multicycle paths(多周期路径通常指的由于系统的特定设计,重新修改建立时间和保持时间检查方式,通常不像EDA工具默认的单周期的检查,多周期路径约束通常定义新的时序检查方式)BEFOREA)相同时钟下由于使能信号等原因导致的多个周期读取IHold:SetupLostnaton clock对于相同时钟,无需确定- start-end,因为参考的时钟都是一样的,只需要重Choct Erable新确定建立时间检查和保持时间检查的关系。由于 setup relationship同时影响crScure cocshold relationship,因此修改建立吋间的同吋也要修改保持吋间关系。如图set multicycle path n -setup -from [get _ pins a-to [get pins b]capture edgeClock Enableset multicycle path N-1hold-from[ get pins a] to get pins b](其中N为建立OIS 2IN 46 CrIS IN 10: I2Slaunch edge时间检查的移动周期数)setupB)相同周期时钟但是有相移,因此修改建立时间检查关系,保持检查会随之-。如。2。=。移动。 set multicycle_path2- - setup- from Iget clocks clk』to[ get clocks clk2]。Destinationapture edge8ns Bn:launch edge Ons 2neine如果是负相移(相移很小)的话,无需约束,情形相当于同吋钟无相移。C)慢时钟到快时钟。 set multicycle_path3- setup-from[ get clocks clk1]-to[ get clocks clk2]Set multicycle_ path 2-hold -end- from iget clocks clk1]-to [get clocks clk2D)快时钟到慢时钟。 set multicycle_ path3- setup- - start-from[ get clocks clk1]-to【xx] set multicycle_ paths2- hold -fromlget clocks clkl to [get clocks clk2];Table 5.3: To define a multicycle path with a Setup of nScenarioMulticycle Constraintslaunch edgeSource cloSame clock domain or betweenset_multicycle_path N-setup-from CLK1 -to CLK2c「L「LLsynchronous clock domains with sameFeriod and no phase-shiftsct_multicycle_path N 1 hold from CLK1 to CLKBetween SLOW-to FAST synchronous clock set_multicycle_ path N-setup from CLK1 -to CIcomaInsset_multicycle_path N-1 -hold-end -from CLK1-to CLK2clock(CLk2capture edgeBetween FAST-to SLOW synchronous clock set_multicycle_path -start -from CLK1 -to CLKcomaInsset_multicycle_path N-1-hold -from CLKI-to CLK2False paths(伪路径约束)对于一些永远不可能起作用的路径或者无需进行时序分析的路径可以设置为 Falsepath(例如异步时钟之间已经经过两级同步器同步则无需分析,例如上电瞬间内容确定则无需分析)example: set false_ path-from [get clocks clk1] to [get clocks clk2]● Min-max(用于约束输入端口到输出端口的最人延迟以及异步信号之间的最人廷迟(意思是即使两个时钟域以经通过同步器或者FFO进行同步,依然可能需要一个最大路径延迟约束川 example1: set max delay10from [get _ ports din]-to [get ports dout] example 2: set max delay - from [get_ pins a]-to [get _pins b●set_bus_skew(用于对异步时钟域多位数据传输路径延迟进行约束,通常用于格雷码转换,多bit数据传输由于传输是多位的bit,因此每个bt之间的路径差异需要被约束,通常是约束一个目的时钟周期。 exampleset bus skew -from[ get cells gray*]-to[ get cells gray_sync+2.5,其中*代表这个寄存器的每个bt;同时为∫保证源时钟和目的时钟之间数据正常传输,需要进一步设置 sex max delay使得这个数据路径的延迟不能超过一定时间(通常是一个源时钟周期) set max delay-datapath only-from[ get cells gray]to[ get cellsgray_sync 517、竞争冒险/消除方法竞争是指的由J逻辑和走线延迟差异导致不同信号到达输入端的时间不同,冒险是指的由于不同信号到达输入端时间差异导致输出信号存在短时不稳定的现象,也叫输出毛刺。消除互补乘积项,例如(A~+B)*(A+C需要消除AA●增加冗余项,例如AB+A~C,当B=C=1的时候是A+A~,因此可以考虑增加BC项,这样就桷保输出无毛刺。输出端并联电容器,能够是的毛刺的上升下降沿变得缓慢,从而抑制毛刺被后级电跻读取的慨率。将组合逻辑电路转变为时序逻辑,因为触发器对毛刺边沿不敏感,可以有效减少毛刺对后级电路影响18、状态机分类/状态转移图/一段两段三段式状态机区别特征(优缺点,本质特征,状态数差别,输出改变时间差别,状态机也分为同步状态机(有CLK控制输出)和异步状态机)/思考具体的状态机实例(饮料售卖)MeaⅣy状态机:输出取决于当前状态和输入,输出可以在输入发牛改变之后立刻响应,具有异步输出的特点,Meay由于结合了当前输入信息和状态信息,因此状态数量更少。Moore状态机:输山仪仅取决于当前状态,和Meay相比 Moore机首先根据输入信息更新状态,然后在下个时钟根据当前状态决定输出,因此速度响应比Meay慢一拍,但是具有可以同步输出的特点。设计状态机首先考虑改计功能需求,然后根据运作流程列举可能的状态并根据转移条件列状态转移表转移图。状态的编码可以考虑采用格雷码(适用于连续跳变)或者是独热码,段式状态机将状态转移和输出集中在一个 always块内书写,电路为时序逻辑不会产生毛刺,但是书写代码冗长且不易修改,可维护性差;两段式状态机将状态转移和输出分放在两个 always块中,前一个用时序逻辑进行状态调转,第二个用组合逻辑控制下一状态的计算和组合逻辑输出,容易产生毛刺。这种与法只有最优的血积和时序性能,但是由于是组合逻辑输出因此增加了到下一级寄存器的输出延迟。段式状态机分为状态调转模块,状态转栘条件判断模块,输岀逻辑模块。三段式状态机将组合和时序逻辑分开,易于维护和综合饮料杋编写(自己编的题目),可以首先考虑实现的玏能,输入应该包括时钟信号,复位信号,输入的钱,输入的饮料选择,以及是否有当前饮料存货;输岀应包括找岺,饮料输出,无饮料提小等信息。中间状态应包括空闲状态,提示无饮料,输入钱多,输入钱正好,输入钱相等,找钱,出饮料,提示继续输入钱等状态,基于上述可能的状态进行状态转移图绘制,然后编写状态转移组合逻辑以及输出逻辑。“H、 Desktop Hardware_ study Sail_· machine”19、系统级/算法级/RTL级/门级/开关级Verilog HDL语言自顶向下通常分为系统级,算法级,RTL级(寄存器传输级),门级,开关级;系统级措述语言提供的髙级结构和所能实现的性能算法级措述算法运行的模型,以上两种描述级别一般不涉及具体实现细节,不考虑是否能转化为硬件结构。RTL级用」描述数据如何在寄存器之问流动和传输门级用于描述逻辑门之间的连接模型开关级措述的是器件晶体管规模的具体连接和信号流动模型前三个级别表述的是行为级,后两个级别分别代表逻辑级和电路级20、阻塞赋值/非阻塞赋值阻塞赋值是指的执行当前语句的时候阻塞其他语句的执行,因此阻塞赋值的执行具有一定的顺序性;非阻塞赋值是指的一次激活操作来临后会首先计算所有非阻塞语句表达式的右值,在激活操作结束后统一赋值给左边变量,执行无先后顺序,当前语句的赋值操作不会阻塞其他语句的赋值操作,因而叫做非阻塞赋值。在设计代码的付候通常对组合逻辑采用阻塞赋值,对时序逻辑采用非阻塞赋值,对阻寒赋值和非阻寒赋值分开在不同的away坎中实现。21 function/task/ repeat/ while/ forFunction用于执行一段的功能电路,由组合逻辑组成,至少一个输入,无输出。返回一个输出值(缺省值为1bit寄存器数据),输入输出的类型可以自己定义。 function可以驱动和使用全局变量,内部定义的为局部变量。函数

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论


0 个回复

  • android http通信demo
    【实例简介】android 当中涉及到网络编程的部分经常会用到http通信,同时android也为我么您提供了HttpUrlConnection接口和HttpClient接口,大大的方便了开发。Http通信又分为两种方式:get和post,get可以uoqu静态页面,传入参数可以放在url当中,而post方法的传入参数则是放在httprequest(请求)当中。前面提到的HttpUrlConnection接口是java当中的通信接口,而HttpClient则是java当中自带的通信接口。这个demo就实现了这四种通信方式。
    2021-10-29 00:36:16下载
    积分:1
  • verilog屏幕控制
    【实例简介】屏幕控制
    2021-08-28 00:30:52下载
    积分:1
  • Java大作业图书管理系统
    Java大作业图书管理系统1 项目功能设计2 类的设计(继承、多态、数据结构)3 Java IO (文件访问)4 JDBC (数据库访问)5 Socket + Multi-Thread 6 GUI (用户界面)
    2020-12-11下载
    积分:1
  • 光伏系统mppt
    光伏系统的mppt的变滑模结构的控制及分析
    2020-11-30下载
    积分:1
  • web--文档管理系统
    可以按照各类条件进行检索文档,采用三层结构进行开发,编辑器采用的是fckeditor后台报告:站点设置、系统探针、文档管理、用户管理
    2020-12-01下载
    积分:1
  • 西门子PLC S7-200 300序范例
    这是我收藏的西门子plc的具体的编程实例,很值得学习,学完了再好好收藏着,绝对的!
    2021-05-07下载
    积分:1
  • 基于labview的个简单的多信号发生器
    这是一个典型的信号发生器,可以实现正弦波 方波 三角波 锯齿波 带白噪声的函数信号发生器。界面没有做专门的处理,有点乱,但程序框图还是比较清晰的,为写作业的童鞋们提供一个参考。界面自己改吧!
    2020-11-29下载
    积分:1
  • 车辆检测-基于车底阴影特征-基于路面灰度级的分割方法-高斯拟合直方图
    C++代码,基于阴影的车辆假设区域生成,主要实现步骤:1.加载一张路面图片;2.加权平均灰度图;3.路面ROI提取(用于作为二值化分割的阈值提取);4.对路面ROI进行canny边缘提取;5.对路面ROI进行路面信息提取(根据canny图,将非路面信息,车,路两边的干扰信息等剔除);6.对步骤5中得到的图片信息进行直方图处理;7.对得到的直方图信息进行高斯拟合,得到直方图的标准差,均值信息;8.根据标准差和均值信息得到二值化的阈值;9.二值化处理,得到分割后的图像,得到所需要的车底阴影。
    2020-12-02下载
    积分:1
  • 人工鱼群 求解tsp 14城
    人工鱼群 求解tsp 14城
    2020-12-08下载
    积分:1
  • 基于视频的三维重建研究
    这是一篇华中科技大学的硕士毕业论文,里面对三维重建技术的讲解很详细,适合作为综述来看独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集休已经发表或撰写过的研究成果。对木文的研究做出贡献的个人和集休,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关侏留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华屮科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以釆用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密口,在年解密后适用本授权书本论文属于不保密口。(请在以上方框内打“√”)学位论文作者签名指导教师签名:日期:年月日日期:年月日万方数据华中科技大学硕士学位论文摘要基于视频的重建技术在计算杋视觉领域中扮演着非常重要的角色,而如何恢复场景的三维模型是目前研究的热点与难点问题。本文围绕基于视频的场景重建技术展开讨论,包括棊于单目视频的三维场景重建和于双目视频的视差图和场景流获取。由于单目包含的深度信息比较少,如何基于单目视频恢复相机的运动参数以及目标的深度信息是研究的重与难点。双目视频虽然包含了非常显著的深度信息,但是考虑到视频中场景的迕续性问题,如何使得恢复岀的深度图保持前后帧的连续性以及场景中运动日标的一致性,也是比较困难的问题。因此,针对上述所提到的问题进行了深入的研究,具体的研究工作如下第一,对三维重建研究进行了详细的介绍,介绍了对于特征点匹配的理解以及我们提出的基于特征引导偏向性高斯混合模型( Feature Guided Biased GaussianMixture model,FGBG);详细介绍立体视觉中立体匹配算法的原理、分类及评测标准,并在4个典型的数据集上对有代表性的局部、全局、半全局算法进行对比实验。此外,详细介绍运动恢复结构(SFM)的基本原理,并进行了实验分析。第二,提岀一种基于双目视频的视差图和场景流获取技术。基于双目视频,首先获得初始的视差图和2D特征点轨迹;在此基础上获得初始的3D稀疏运动轨迹,利用本文提出的 Object Motion Hypothesis(OMH)算法获得运动物体的致性假设采用 slanted-plane model以及参考图像与前后时间点图像对的约束关系,构建超像素和运动物体之间的能量模型,通过优化获得视差和场景流的估计结果。第三,提出一种棊于单目视频的动态场景重建系统。在获取特征点轨迹的基础上,基于运动信息获得特征点轨迹的聚类结果;提出一种基于超像素的多标记Graph-cut算法,得到每一个日标的精确边界;为每一个运动日标分配一个虚拟相机通过标准的SFM方法分别单独估计每个运动目标对应的虚拟相机的参数和稀疏三维点云,通过PMVS和泊松表面重建获得目标的稠密重建结果。关键词:三维重建、单∏视频、双目视频、视差、场景流万方数据华中科技大学硕士学位论文Abstract3D reconstruction based on video has play an important role in computer vision, andhow to recover 3D scene model has been paid much attention and is a difficult problemBased on the importance of 3D reconstruction, in this paper, the 3D reconstruction basedon video has been studied, including 3D scene reconstruction based on monocular videoand depth map and scene flow estimating based on binocular video. Since the monocularcontains much less depth information, how to recover the camera motion and depth maphas been a difficult problem. Besides, although binocular view contains significant depthinformation, it is difficult to keep the consistency of depth map and moving objectsTherefore, in view of the problems mentioned above the specific research works are asFirst. we introduce two directions of 3D reconstruction in computer vision: based onstereo vision method and based on structure from motion. The stereo matching method hasbcen introduced in detail, including algorithm principle, classification, and evaluationmethod. And, we compare the global, local and semi-global algorithm on four typicaldataset. In addition, we have made a detail introduction of structure from motion(SFM)and the experiment has been carried out to get 3D point cloudSecond, a method for depth map and scene flow estimation is proposed. First, inputbinocular video, initial disparity map is got by SGM, 2 point trajectories are got byoptical flow. Then the 3D tracks are got by disparity map and 2D point trajectories, get theobject motion hypothesis. Considering constraint between the reference image and theforward-backward images, the energy model based on super-pixel and object isconstructed using slanted plane model. Finally, the depth map and scene flow will be gotThird, a method for reconstructing monocular dynamic scene with multiple movingrigid objects captured by a single moving camera is proposed. First of all, feature pointsare matched through the video sequence via the optical flow method and the tracks "aregot based on these matches. Then the tracks are divided into several groups according totheir motion differences. An improved graph cuts based multi-label auto imagesegmentation method is used to acquire the accurate boundary of each moving object and万方数据华中科技大学硕士学位论文the static background. Then we assume a virtual camera for each moving object and thestatic background. The pose of these virtual cameras are estimated via the standardStructure from Motion(SFM) pipeline. Finally a dense point set and textured model isreturned for each virtual camera. We evaluate our approach on real-world video sequenceand demonstrate its robustness and effectivenessKey words: 3D reconstruction, monocular video, binocular video, disparity, scenefleOw万方数据华中科技大学硕士学位论文目录摘要Abstract绪论1研究的背景及意义2国内外研究现状1.3论文的主要工作及结构···································:··········.················4·2三维重建基本方法研究2.1引言.………8)2.,2线性摄像机模型(8)23基于特征点的图像匹配24运动恢复结构方法(12)2.5立体匹配与三维重建···.·.·······.·················:····.····················(15)26本章小结(22)基于双目视频的视差图与场景流估计3.1引言(23)3.2运动目标的提取(25)3.3双向约束场景流模型..31)34实验分析.333.5本章小结(444基于单目视频的三维重建研究(45)4.2目标分割(464.3三维场景估计(51)万方数据华中科技大学硕士学位论文4.4实验分析(52)4.5本章小结(55)5全文总结与展望5.1木文的主要页献与创新点(56)5.2工作展望…7)致谢S8)参考文献非D·非非··非。非(59)附录万方数据华中科技大学硕士学位论文绪论11研究的背景及意义视觉是人类的基本功能。通过视觉,人们能够感知外部世界中物体的大小,以及辨别物体之间的相对位置,并且了解它们之间的相互关系。人类把这种功能称为视觉功能。随着科学技术的不断创新,新兴的电子产品不断涌现,数码设备的成熟和计算机理论的涌现让人们越来越关注计算机视觉。人们开始利用摄像机采集视频或者图像,并将其转化为人类可理解的信号。即利用计算机实现模仿人类视觉的功能,计算机视觉也就随之六生。计算机视觉是个涵盖多种学科知识的新兴学科。其理论研究的最终目的是通过对采集到的视频或者图像进行处理,将二维图像或视频转化为三维信息,从而感知场景或物体的形状及运动。因此,计算机视觉吸引了越来越多的研究人员参与其中,包括图像处理与模式识别,应用数学,计算札科学与技术等等。三维场景重建作为计算札视觉中一个重要的研究方向,受到许多研究者的青睐。最近,获取三维场景信息的方式主要有以下三种:第一种,利川常见的建模软件3DMax、CAD等进行重建;第二种,利用深度扫描仪、红外或者激光测距仪器等设备进行三维重建;第三种,利用计算机视觉原理,基于视频或者图像获取场景的三位模型。在上述方法中,第一种是最为成熟的,但是第一种方法的操作步骤十分复杂,并且建模周期长。第二种方式能够获得物伓的髙精度几何模型,但是这些仪器价格昂贵,费时费力,并且对于重建大型场景非常局限。因此,第三种方式受到了普遍的关注,它可以重建复杂的室外大型场景,真实感强,价格低廉且方便携带。利用图像或者视频对场景进行重建,即从图像或视频中恢复场景或者物体的三维几何信息,构建三维模型,给人以视觉亨受。三维重建的用途十分广泛,它可以用于机器人导航,无人驾驶,医学图像分析,游戏等众多方向在众多的三维场景重建方法中,于视频的重建方法一直是一个研究热点。其中,从单目视觉的角度出发,基于单目视频的三维重建技术就是利用单个摄像札对万方数据华中科技大学硕士学位论文场景进行拍摄,研宄如何利用图像序列光流估计运动物体或场景的三维运动来重建三维模型。从双日视觉的角度出发,基于双∏视频的三维重建技术就是利用两个摄像机,从两个不同的角度对同一个场景进行拍摄,研究如何利用左右两个图像序列各自的运动信息,以及左右视图之间的视差信息,完成场景的三维重建。本文的基于视频的三维重建技术具有十分重要的研究价值。针对双目视频,提出了一种基于双目视频的视差图和场景流获取技术,目的是同时获得视差图和场景流信息、。针对单目视频,提出个完整的基于包含多个刚体运动目标的单目动态场景视频的重建系统。12国内外研究现状121基于单目视觉的三维重建研究现状近年来,3D静态场景的重建己经取得了显著性的突破。其中,大多数的研究都是遵循一个特定的步骤:首先从一组多视角的图像中提取特征点,然后对多视图中的特征点进行匹配,构建基础矩阵,恢复相机参数,从而得到玚景的三维结构凹。其中, Snavely N主要通过SFM( (structure from motion)从无序图像序列中恢复相机的位置以及获得场景的三维稀疏点云倒。除∫稀疏点云的重建之外,很多学者也集中研究场景的三维稠密重建四。其中, Seitz s m对多种立体匹配算法进行比较,并且是第一个提供已标定的多视图数据集。 Kolev K在前者的基础之上提出了一个全局能量模型,融合了轮廪信息和立体信息。值得一提的是,深度信息也是一种非常有前景的3D重建方法,主要思想是通过恢复图像的深度信息,融合多幅深度图逃行稠密重建η。此外,很多研究集屮于基于单个视频的稠密表面重建,主要包括基于场景流( scene flow)s, mesh- based稠密表面重建例, patch-base稠密表面重。但是,大多数捕获的视频中,动态场景视频比铰常见。而上述的研究只能用于处理静态场景,它们在应对多目标运动场景方面是十分有限的。最近, Tron r提出了一个包含动态运动目标的场景分割标准山,它是·个重要的3D运动估计和重建的预处埋过程视频重建主要有于两个视图12和基于多个视图314其中,HanM和万方数据
    2020-12-11下载
    积分:1
  • 696518资源总数
  • 105466会员总数
  • 24今日下载