数字IC笔面基础,动不动就手撕——奇偶分频器(分频器简介和Verilog实现)
分频器简介和Verilog实现
- 写在前面的话
- 偶数分频
- 级联触发器实现2^n偶数分频
- 计数器实现2n偶数分频
- 奇数分频(常考)
- 奇数分频,占空比50%(最常考,要求熟练掌握一种)
- OR操作,2N+1 奇数分频
- AND操作,2N+1 奇数分频
- XOR操作,2N+1 奇数分频
- 奇数分频,占空比非50%
- 小数分频(针对越来越卷的数字IC,建议还是要掌握)
- **先看方法:**
- **再看波形:**
- **关键点:**
- **Verilog实现:**
- 总结
写在前面的话
分频器,是将输入信号的频率进行缩小。实际上,在数学IC笔面中常考的分频器设计,就是采用计数器,对输入时钟合理生成中间信号,最后通过逻辑操作输出。本质上,这里考的还是计数器相关的知识点,同时会涉及到时钟相关的基本概念。
(1)在实际的项目中,除非是对时钟没有特殊要求,这时候才能使用分频的方法;
(2)一般会优先使用PLL、MMCM等成熟IP,得到精确、质量高的时钟信号。
关于分频器的种类,大致有以下几点:
(1)偶数分频,始终产生占空比50%。
(2)奇数分频,分为占空比50%和非50%。(相较于偶数分频,奇数分频是常考的知识点)
(3)小数分频,结合正常分频和平均分布实现的。(之前都没怎么考过,相较于前两种,更加综合,看看现在这越来越卷的数字IC,建议还是要掌握)
注意点:
除了分频器本身相关的知识点,这里在面试时也会有时钟和时序分析相关的拓展点,建议同学们也要了解时钟和时序分析相关的知识点。有条件的同学,可以亲手做做时序分析相关的实验,了解时序路径和时序报告。
偶数分频
级联触发器实现2^n偶数分频
采用触发器加反相器,可以构成简单的2分频电路,以这个基本单元进行级联可以实现4分频、8分频、16分频,分频系数是2^n.
2分频电路:
4分频电路:
2^n分频电路:
Verilog实现:
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : even_fre_div1.v
// Create : 2022-11-07 10:06:32
// Revise : 2022-11-07 10:06:32
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 2^n 偶数分频 利用DFF 取反 //div2 div4 div8
// -----------------------------------------------------------------------------
module even_fre_div1 (input clk , // Source Clockinput rst_n , // Asynchronous reset active lowoutput wire clk_div2 , // clock div2output wire clk_div4 , // clock div4output wire clk_div8 // clock div8);//reg define
reg clk_div2_t ;
reg clk_div4_t ;
reg clk_div8_t ;//div_2
always @(posedge clk or negedge rst_n) begin if(~rst_n) beginclk_div2_t <= 1'b0 ;end else beginclk_div2_t <= ~clk_div2_t ;end
end//div4
always @(posedge clk_div2 or negedge rst_n) begin if(~rst_n) beginclk_div4_t <= 1'b0;end else beginclk_div4_t <= ~clk_div4_t ;end
end//div8
always @(posedge clk_div4 or negedge rst_n) begin if(~rst_n) beginclk_div8_t <= 1'b0;end else beginclk_div8_t <= ~clk_div8_t ;end
end//assign
assign clk_div2 = clk_div2_t ;
assign clk_div4 = clk_div4_t ;
assign clk_div8 = clk_div8_t ;
endmodule
计数器实现2n偶数分频
利用计数器,计数范围(0~2N-1),在N-1处取反。直接看波形:
计数器2n偶数分频:
Verilog实现:
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : even_fre_div2.v
// Create : 2022-11-07 10:30:09
// Revise : 2022-11-07 10:30:09
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 2n偶数分频,计数器实现
// -----------------------------------------------------------------------------
module even_fre_div2 #(parameter div_2n = 12 )(input clk , // Source Clockinput rst_n , // Asynchronous reset active lowoutput wire clk_div2n // div 2n
);reg [3:0] cnt ;
reg clk_div2n_t ;//cnt
always @(posedge clk or negedge rst_n) begin if(~rst_n) begincnt <= 4'd0;end else if(cnt == (div_2n/2) -1)begincnt <= 4'd0 ;endelse begincnt <= cnt +4'd1 ;end
end//out clk
always @(posedge clk or negedge rst_n) begin if(~rst_n) beginclk_div2n_t <= 1'b0;end else if(cnt == (div_2n/2)-1) beginclk_div2n_t <= ~clk_div2n_t;endelse beginclk_div2n_t <= clk_div2n_t ;endend//assign
assign clk_div2n = clk_div2n_t ;endmodule
奇数分频(常考)
相较于偶数分频,奇数分频的知识点要稍微多些,有占空比50%和非50%;而占空比50%又是最常考的知识点,有相与、相或、相异或三种。
实际手撕代码时,要求熟练掌握一种奇数分频的电路就行,这里推荐相与和相或,两种任一选择一种练习就行。
**PS:**奇数分频还涉及到双边沿计数器,感兴趣的同学可以了解双边沿采样相关的知识点。
奇数分频,占空比50%(最常考,要求熟练掌握一种)
OR操作,2N+1 奇数分频
先看方法:
再看波形:
最后看代码:
示例1,单计数器实现:
只在上升沿计数,在上升沿和下降沿采用输出高低电平;
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : odd_fre_or_div1.v
// Create : 2022-11-07 15:49:36
// Revise : 2022-11-07 15:49:36
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 奇数分频 占空比50% OR操作 单计数器实现
// -----------------------------------------------------------------------------module odd_fre_or_div1 #(parameter DIV_CLK = 9 //div 2n+1 )(input clk , //Source Clockinput rst_n , //Asynchronous reset active lowoutput wire clk_div_odd //div odd);//reg definereg [3:0] cnt ;reg clkp_odd_r ;reg clkn_odd_r ;//cntalways @(posedge clk or negedge rst_n) beginif (~rst_n) begincnt <= 'b0 ;endelse if (cnt == DIV_CLK-1) begincnt <= 'b0 ;endelse begincnt <= cnt + 1'b1 ;endend//posedge clk_div always @(posedge clk or negedge rst_n) begin // N >>> high N+1 >>> lowif (~rst_n) beginclkp_odd_r <= 1'b0 ;endelse if (cnt == (DIV_CLK>>1)-1 ) begin clkp_odd_r <= 1'b0 ;endelse if (cnt == DIV_CLK-1) begin clkp_odd_r <= 1'b1 ;endelse beginclkp_odd_r <= clkp_odd_r ;endend//negedge clk_div always @(negedge clk or negedge rst_n) begin // N >>> high N+1 >>> lowif (~rst_n) beginclkn_odd_r <= 1'b0 ;endelse if (cnt == (DIV_CLK>>1)-1 ) begin clkn_odd_r <= 1'b0 ;endelse if (cnt == DIV_CLK-1) begin clkn_odd_r <= 1'b1 ;endelse beginclkn_odd_r <= clkn_odd_r ;endend//OR assign clk_div_odd = clkp_odd_r | clkn_odd_r ;endmodule
示例2,双计数器实现:
在上升沿和下降沿计数,在上升沿和下降沿采用输出高低电平;
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : odd_fre_or_div2.v
// Create : 2022-11-07 16:10:14
// Revise : 2022-11-07 16:10:14
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 奇数分频 占空比50% OR操作 双计数器实现
// -----------------------------------------------------------------------------
module odd_fre_or_div2 #(parameter DIV_CLK = 9)(input clk , // Source Clockinput rst_n , // Asynchronous reset active lowoutput wire clk_div_odd // div odd);reg [3:0] cnt_p ;
reg [3:0] cnt_n ;reg clkp_odd_r ;
reg clkn_odd_r ;// pos cnt
always @(posedge clk or negedge rst_n) beginif (~rst_n) begincnt_p <= 'b0 ;endelse if (cnt_p == DIV_CLK-1) begincnt_p <= 'b0 ;endelse begincnt_p <= cnt + 1'b1 ;end
end//neg cnt
always @(negedge clk or negedge rst_n) beginif (~rst_n) begincnt_n <= 'b0 ;endelse if (cnt_n == DIV_CLK-1) begincnt_n <= 'b0 ;endelse begincnt_n <= cnt + 1'b1 ;end
end//posedge clk_div always @(posedge clk or negedge rst_n) begin // N >>> high N+1 >>> lowif (~rst_n) beginclkp_odd_r <= 1'b0 ;endelse if (cnt_p == (DIV_CLK>>1)-1 ) begin clkp_odd_r <= 1'b0 ;endelse if (cnt_p == DIV_CLK-1) begin clkp_odd_r <= 1'b1 ;endelse beginclkp_odd_r <= clkp_odd_r ;endend//negedge clk_div always @(negedge clk or negedge rst_n) begin // N >>> high N+1 >>> lowif (~rst_n) beginclkn_odd_r <= 1'b0 ;endelse if (cnt_n == (DIV_CLK>>1)-1 ) begin clkn_odd_r <= 1'b0 ;endelse if (cnt_n == DIV_CLK-1) begin clkn_odd_r <= 1'b1 ;endelse beginclkn_odd_r <= clkn_odd_r ;endend//ORassign clk_div_odd = clkp_odd_r | clkn_odd_r ;endmodule
AND操作,2N+1 奇数分频
先看方法:
再看波形:
最后看代码:
示例1,单计数器实现:
只在上升沿计数,在上升沿和下降沿采用输出高低电平;
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : odd_fre_and_div1.v
// Create : 2022-11-07 16:30:31
// Revise : 2022-11-07 16:30:31
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description:奇数分频 占空比50% AND操作 单计数器实现
// -----------------------------------------------------------------------------
module odd_fre_and_div1 #( parameter DIV_CLK = 9 )(input clk ,input rst_n ,output wire clk_div_odd);//capture at negedgereg [3:0] cnt ;reg clkp_odd_r ;reg clkn_odd_r ;//cnt always @(posedge clk or negedge rst_n) beginif (~rst_n) begincnt <= 'b0 ;endelse if (cnt == DIV_CLK-1) begincnt <= 'b0 ;endelse begincnt <= cnt + 1'b1 ;endend//posedge clk_divalways @(posedge clk or negedge rst_n) begin // N+1 >>> high N >>> lowif (~rst_n) beginclkp_odd_r <= 1'b0 ;endelse if (cnt == (DIV_CLK>>1) ) begin clkp_odd_r <= 1'b0 ;endelse if (cnt == DIV_CLK-1) begin clkp_odd_r <= 1'b1 ;endelse beginclkp_odd_r <= clkp_odd_r ;endend//negedge clk_divalways @(negedge clk or negedge rst_n) begin // N+1 >>> high N >>> lowif (~rst_n) beginclkn_odd_r <= 1'b0 ;endelse if (cnt == (DIV_CLK>>1) ) begin clkn_odd_r <= 1'b0 ;endelse if (cnt == DIV_CLK-1) begin clkn_odd_r <= 1'b1 ;endelse beginclkn_odd_r <= clkn_odd_r ;endend
//ANDassign clk_div_odd = clkp_odd_r & clkn_odd_r ;endmodule
示例2,双计数器实现:
在上升沿和下降沿计数,在上升沿和下降沿采用输出高低电平;
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : CHAO LI 1320343336@qq.com
// File : odd_fre_and_div2.v
// Create : 2022-11-07 16:38:20
// Revise : 2022-11-07 16:38:20
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 奇数分频 占空比50% AND操作 双计数器实现
// -----------------------------------------------------------------------------
module odd_fre_and_div2 #(parameter DIV_CLK = 9)(input clk , // Source Clockinput rst_n , // Asynchronous reset active lowoutput wire clk_div_odd // div odd);reg [3:0] cnt_p ;
reg [3:0] cnt_n ;reg clkp_odd_r ;
reg clkn_odd_r ;// pos cnt
always @(posedge clk or negedge rst_n) beginif (~rst_n) begincnt_p <= 'b0 ;endelse if (cnt_p == DIV_CLK-1) begincnt_p <= 'b0 ;endelse begincnt_p <= cnt + 1'b1 ;end
end//neg cnt
always @(negedge clk or negedge rst_n) beginif (~rst_n) begincnt_n <= 'b0 ;endelse if (cnt_n == DIV_CLK-1) begincnt_n <= 'b0 ;endelse begincnt_n <= cnt + 1'b1 ;end
end//posedge clk_div always @(posedge clk or negedge rst_n) begin // N+1 >>> high N >>> lowif (~rst_n) beginclkp_odd_r <= 1'b0 ;endelse if (cnt_p == (DIV_CLK>>1) ) begin clkp_odd_r <= 1'b0 ;endelse if (cnt_p == DIV_CLK-1) begin clkp_odd_r <= 1'b1 ;endelse beginclkp_odd_r <= clkp_odd_r ;endend//negedge clk_div always @(negedge clk or negedge rst_n) begin // N+1 >>> high N >>> lowif (~rst_n) beginclkn_odd_r <= 1'b0 ;endelse if (cnt_n == (DIV_CLK>>1) ) begin clkn_odd_r <= 1'b0 ;endelse if (cnt_n == DIV_CLK-1) begin clkn_odd_r <= 1'b1 ;endelse beginclkn_odd_r <= clkn_odd_r ;endend//ANDassign clk_div_odd = clkp_odd_r & clkn_odd_r ;endmodule
XOR操作,2N+1 奇数分频
XOR操作相较于上述两种方法使用较少,这里大家理解一下实现的思路就好,仅供感兴趣的同学提供新思路。
重要的是自己要熟练掌握一种奇数分频方法。
先看方法:
再看波形:
最后看代码:
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : odd_fre_xor_div.v
// Create : 2022-11-07 17:02:24
// Revise : 2022-11-07 17:02:24
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 奇数分频 占空比50% XOR操作
// -----------------------------------------------------------------------------
module odd_fre_xor_div #(parameter DIV_CLK = 9 )(input clk , // Source Clockinput rst_n , // Asynchronous reset active lowoutput wire clk_div_odd // div odd);reg [3:0] cnt;//上升沿计数
reg clkp_odd ;
reg clkn_odd ;//cnt
always@(posedge clk or negedge rst_n)beginif(~rst_n)begincnt <= 4'd0;endelse if(cnt == DIV_CLK-1) begincnt <= 4'd0;endelse begincnt <= cnt + 1;end
end//pos clk_div
always@(posedge clk or negedge rst_n)beginif(~rst_n)beginclkp_odd <= 1'b0;endelse if (cnt == DIV_CLK-1 )beginclkp_odd <= ~clkp_odd;endelse beginclkp_odd <= clkp_odd;end
end//neg clk_div
always@(negedge clk or negedge rst_n) beginif(~rst_n) beginclkn_odd <= 1'b0;endelse if (cnt == DIV_CLK >> 1) beginclkn_odd <= ~clkn_odd;endelse beginclkn_odd <= clkn_odd ;end
end//XOR
assign clk_div_odd = clkp_odd ^ clkn_odd;
endmodule
奇数分频,占空比非50%
占空比非50%的情况,只要分频后的波形周期是原波形周期的2N+1就行。
3分频有两种占空比,1/3 和2/3。分别对应OR 操作和AND操作,具体代码可以参考上述。
小数分频(针对越来越卷的数字IC,建议还是要掌握)
小数分频不能做到精确控制占空比,也没法做到精确的小数分频,而是平均频率是小数倍。这里小数分频涉及到奇数分频、偶数分频以及平均分布的方法。
先看方法:
再看波形:
关键点:
小数分频的关键点有两个:
(1)完成奇偶分频,确定好分频次数;
(2)确定分频次数后,要合理安排分频的顺序,确保平均。
例如8.4分频,得到6次8分频和4次9分频,对应有四种分布方式。
分布方式 | 具体操作 | 备注 |
---|---|---|
1 | 先6次8分频,再4次9分频 | 频率不均,边缘处时钟抖动大 |
2 | 先4次9分频,再6次8分频 | 频率不均,边缘处时钟抖动大 |
3 | 6次8分频和4次9分频,平均分布 | 频率均匀,抖动小 |
Verilog实现:
以8.4倍小数分频举例
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : fre_fractional-n.v
// Create : 2022-11-08 14:45:45
// Revise : 2022-11-08 14:45:45
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 小数分频 8.4倍小数
// -----------------------------------------------------------------------------module fre_fractional-n ( #(parameter SOURCE_NUM = 84 , //Sorce clocksparameter DEST_NUM = 10 //div nums 8.4 )(input rstn , //Asynchronous reset active lowinput clk , //Source Clockoutput clk_frac //fractional frequency division);parameter SOURCE_DIV = SOURCE_NUM/DEST_NUM ; //8-divisorparameter DEST_DIV = SOURCE_DIV + 1; //9-divisorparameter DIFF_ACC = SOURCE_NUM - SOURCE_DIV*DEST_NUM ;//regreg [3:0] cnt_end_r ;reg [3:0] main_cnt ;reg clk_frac_r ;wire diff_cnt_en ;//difference counterreg [4:0] diff_cnt_r ;wire [4:0] diff_cnt ;//main_cntalways @(posedge clk or negedge rstn) beginif (!rstn) beginmain_cnt <= 'b0 ;clk_frac_r <= 1'b0 ;endelse if (main_cnt == cnt_end_r) beginmain_cnt <= 'b0 ;clk_frac_r <= 1'b1 ;endelse beginmain_cnt <= main_cnt + 1'b1 ;clk_frac_r <= 1'b0 ;endend//diff_cntalways @(posedge clk or negedge rstn) beginif (!rstn) begindiff_cnt_r <= 0 ;endelse if (diff_cnt_en) begindiff_cnt_r <= diff_cnt ;endend// cnt_endalways @(posedge clk or negedge rstn) beginif (!rstn) begincnt_end_r <= SOURCE_DIV-1 ;endelse if (diff_cnt >= 10) begincnt_end_r <= DEST_DIV-1 ;endelse begincnt_end_r <= SOURCE_DIV-1 ;endend//assignassign clk_frac = clk_frac_r ;assign diff_cnt_en = (main_cnt == cnt_end_r)?1'b1:1'b0 ;assign diff_cnt = diff_cnt_r >= DEST_NUM ?(diff_cnt_r -10 + DIFF_ACC): (diff_cnt_r + DIFF_ACC) ;endmodule
总结
分频器作为数字IC笔面最常考的知识点,经常会出现在编程题和手撕代码环节,其中,奇数分频又是最常考的部分,要求必须熟练掌握一种奇数分频方法。
(1)偶数分频不需要考虑占空比,是理想的50%。
(2)奇数分频需要考虑占空比是否50%,要求使用双边沿逻辑,涉及到双边沿操作,这里会有一定的拓展,例如双边沿采样怎么实现?另外,时钟相关的概念也有涉及,例如频率、相位、抖动和偏移等。
(3)小数分频涉及奇数分频和偶数分频,之前很少出现手撕代码的环节,大多在笔试环节或者面试询问相关的实现方式,要求理解实现方法就好,但看现在数字IC越来越卷的现状,建议有时间精力的同学还是了解相关知识点。
(4)分频器相关的知识点拓展可以是时钟相关的IP以及时序分析相关的知识点,同学们也要了解相关的知识点,打好基础。
数字IC笔面基础,动不动就手撕——奇偶分频器(分频器简介和Verilog实现)相关推荐
- 数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)
数字IC笔面基础之触发器 写在前面的话 关键点: D触发器 基本正边沿触发D触发器 异步复位D触发器 带清零和置一的D触发器 T触发器 JK触发器 总结 写在前面的话 触发器是数字IC最基础的知识点, ...
- 数字IC笔面基础,师傅领进门,修行靠个人——人人心中都有一个状态机(状态机简介及Verilog模板)
师傅领进门,修行靠个人(状态机) 写在前面的话 状态机简介 状态机类型 一段.两端还是三段? 状态机的Coding Style要求: 几点规则: 什么是一段.两段.三段? 一段.两段.三段优缺点 Ve ...
- 数字IC笔试题,大疆校招16题(仅供参考)
\\\插播一条: 自己在今年整理一套单片机单片机相关论文800余篇 论文制作思维导图 原理图+源代码+开题报告+正文+外文资料 想要的同学私信找我. 数字IC笔试题,大疆校招16题(仅供参考) 1.异 ...
- 数字IC笔面常考,跨时钟域神器。——异步FIFO(简介及手撕代码)
异步FIFO 写在前面的话 异步FIFO相关知识点 FIFO简介 FIFO结构 应用场景(来源小梅哥 <FPGA 系统设计与验证实战指南> 章节4.4) 相关参数 异步FIFO 内部组成 ...
- 数字IC笔试题---千题解,量大管饱,图文并茂
前言 出笔试题汇总,是为了总结秋招可能遇到的问题,做题不是目的,在做题的过程中发现自己的漏洞,巩固基础才是目的. 所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于& ...
- 建议收藏:不能不刷的100道数字IC笔/面试题!
一.IC设计流程及相应EDA开发工具 前端设计(逻辑设计) 1.规格制定 根据客户需求(具体的功能和性能要求)制定芯片规格Spec 2.详细设计 设计方案,具体实现架构,模块划分 3.HDL编码 将实 ...
- 南芯半导体数字IC笔试题
笔试题型 总共八道题,其中前四道为5分的画图题和简答题,后四道为20分的设计题和简答题,题目较为基础,难度不大. (1)跨时钟域的问题 (2)竞争与冒险 (3)数字IC的素质与技能 (4)消除毛刺电路 ...
- 数字IC笔面试(一)——联发科提前批笔试题记录
六月底参加了联发科提前批的数字IC笔试,自己能会一些的无非就是FPGA部分,还是凉凉了,不好好准备还是不行!!本文记录一下题目,毕竟复盘很重要啊,同时加入一些小的理解,若有错误,请指正,谢谢!! 对联 ...
- 艾为数字ic面试题_数字IC笔试题(2017年)
转眼之间又到了一年一度的校招时间,回想去年这个时候,真的是经历了长达数月的兵荒马乱.现在也入职几个月了,想给去年的自己找工作做个总结,也供今年校招的童鞋做一些参考. 废话不多说,结合多家的笔试题,变来 ...
最新文章
- GStreamer跨平台多媒体框架
- php写项目,php写web项目
- BCH正式升级,智能合约,逐梦而来!
- mysql安装 经验_MySQL安装教程 这些经验不可多得
- java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet
- boost::phoenix::delete和using boost::phoenix::new_相关的测试程序
- Sales Volume Analysis PoC app test - environment setup finished
- 图数据库neo4j安装、neo4j使用
- 在循环递增一次的数组中插入元素
- ubuntu修改文件夹权限
- Apache Commons Codec 1.7 发布
- 克罗谈投资策略04_感觉与现实
- postgresql和greenplum使用笔记
- 三星固态速度测试软件,三星SSD固态硬盘优化工具Samsung Magician使用说明
- oracle存储过程实例带参数,oracle简单存储过程(带参数)
- Qt配置opencv
- Ember component
- 使用Sophix热修复注意事项
- SPSS中方差分析(F检验)的作用以及使用前提
- 地铁综合监控系统网络方案,简化工作轻松应对客流高峰