想了半个月,决定还是写一些关于硬件验证的文章,也算是我前4个月实习工作的总结。内容比较多,我慢慢写,也就当连载了。
本文大部分由我的工作报告翻译整理而来,有些地方翻译得可能不尽完美,我已将关键的英文原词给出。


在硬件验证方面,我也是个初学者,但是看过了国内某论坛对于硬件验证的讨论,觉得现在国内实在对硬件验证理解得太单纯。

什么是硬件验证?

硬件验证(或者说“芯片验证”),真正的英文是Pre-silicon Verification,就是流片前验证。硬件验证实际上是对设计模型(RTL)的功能性验证,同时尽量发现潜在的隐患。也就是说,硬件验证的首要任务是保证设计模型能完成所有预先设计的功能,其次才是发现设计漏洞(bug)。所以,硬件验证并不是单纯的调试(debug)。

为什么要硬件验证?

硬件和软件不一样。如果软件出现漏洞(bug),进行相应的升级(update)或者修补(patch)就可以了。但是硬件就不同了。如果硬件出现故障(malfunction),唯一的解决方法就是替换(replacement),这将耗费大量的人力和财力。同时,芯片厂同批产品全部需要销毁,这对于芯片制造企业来讲,也是一个很大的损失。所以,现在的芯片制造企业大多都成立了专门的硬件验证部门,其目的就是防患于未然。

硬件验证是硬件生产中非常关键的一步,以至于现在的硬件厂商用二倍于设计的时间来进行验证。[1] 通过验证,不仅可以找出缺失的功能和错误的响应,也可以测试硬件的性能和发现隐藏的问题。在硬件验证过后,虽然不能保证硬件100%稳定运行,但是可以确认在绝大多数情况下硬件能正常工作。

怎样进行硬件验证?

最早的硬件验证使用确定性验证法(Deterministic Verification,我觉得翻译成“针对性验证法”更恰当些),也就是手工生成激励输入(stimulus),然后人工比对输出响应(response),如果响应与设计相吻合,则内部电路正确。这种方法的好处就是针对性非常强,我们可以针对某一个信号或者某一个引脚的动作(behaviour)进行测试。但是这种方法的弊端也很明显,如果对每一个引脚都做确定性验证,那将消耗大量的时间和精力。尤其是现在的芯片规模越来越大,功能越来越复杂,如果做完整的确定性验证,花费的时间可能达到数百年。

现在比较通用的方法是随机验证法(Randomization),就是由程序随机生成输入激励,然后将输出响应和预测值进行比对,从而判断设计是否工作正常。这里就需要引入一个“参考模型(Reference Model)”的概念。

由于输入是随机的,不确定的,那么如何得出相对应的输出就是一个很棘手的问题。如果用人工计算的方法,那就和前面提到的确定性验证法一样了。为了避免大量的人力劳动,预测的过程将由程序来替代。而这个通过输入预测输出的模型就叫做参考模型。在实际操作中,参考模型和设计模型由不同的人员编写,以保证对设计理解的一致性。换句话说,就是避免同一个人犯同样的错误。

事实上,现在的硬件验证已经将针对性和随意性两种验证方法相结合,发挥两者的优势,达到验证开销的最小化。整体随机验证法是硬件验证的终极方案,即所有的输入激励均由程序随机产生。这种方法的好处就是保证了输入的多样性,同时能检测出只有在特定状态下才会引发的错误(Corner Cases)。但是这种方法对于参考模型的要求非常高,一般到验证后期、待参考模型完善才会使用。

既然自动验证需要程序预测,那么相应的编程语言也就由此而生。通常,在设计上,工程师们使用硬件设计语言(HDL,Hardware Design Language或者Hardware Description Language),但是,在验证方面,硬件设计语言无法胜任大部分要求(比如说,遇错报警,随机产生激励等等)。这时候,硬件验证语言(HVL,Hardware Verification Language)出现了。目前用得比较广泛的硬件验证语言是Synopsys的Vera和Cadence的

e

语言。有人说SystemVerilog和SystemC是更高级的硬件验证语言,没错,但是我只接触过Vera,对Vera最熟悉,所以下面对硬件验证的讨论我将使用Vera语言。

Vera语言

Synopsys公司很有意思,他们说OpenVera是一个语言而Vera是一个编译器。这种混淆视听的言论没必要再追究了,既然绝大多数工程师都说Vera语言,那么我也顺着一起称Vera为语言。在此我不想介绍Vera的历史,但是要提一点,听说Vera是一个中国团队开发的,开发这个语言的人都很厉害,在硬件方面都是大师级水平。暂且不论这个道听途说是否正确,首先这些大师能研究出能被工业界广泛应用的高级工具就让人佩服。

Vera语言是一个面向对象(OO,Object Oriented)的语言,其核心概念就是对象和继承,这一点相信学过Java的人都很熟悉。Vera程序能够很好地和Verilog程序交互,这也是使Vera成功的重要一点。Vera的语法跟Java、C和Verilog都很相似,这样一来可以缩短学习Vera语言的时间。最后要提一点,Verilog+Vera+OVA的功能升级后就是SystemVerilog。所以,要掌握SystemVerilog的概念,Vera必不可少。

 

这一部分就先讲这么多,下一部分开始讲测试平台(testbench)。


[1] 参见《编写测试平台(第二版)》

终于能有一部让我放弃“DV影片”这个词的片子了。
我不称《寄生人》为DV影片,并不是因为这部片子拍得好,
而是因为这部片里面名角比较多。
黄秋生、张家辉、范冰冰,表演的都很出色。

但是,故事基线就不敢恭维了。
说是悬疑片,但是直到1个小时之后才出现悬疑,
之前的内容也就只是唠家常。

几位演员的造型都很不错,人物性格把握得很好。
但是配音就差得多了。怎么听怎么觉得黄秋生是个半男不女的。
对话也很生硬,尤其是两位香港演员的台词,不知所云。

综合来看,导演不错、化妆不错,但是剧本方面很是欠缺。

最近更多关心的是国内的“二线影片”,就是那些非“大牌导演”的影片。
今天又看了一个,《追爱总动员》。

因为看过了《武林外传》,里面很多演员都很熟悉了。
但是出乎意料的剧情却给了我一个惊喜。
地铁上的邂逅、生活中的擦肩而过、背后的炒作与朋友的支持,
影片从头到尾都处于一个写实的状态,
没有过多的铺垫,没有累赘的搞笑,也没有复杂的对话。

从故事方面,《追爱总动员》和《爱情呼叫转移》如出一辙,
都是用一条故事主线,同时融入一些2006年的大事。
但是相比《爱情呼叫转移》而言,《追爱总动员》更注重故事性。

另外,《追爱总动员》的镜头运用与特效制作也很值得称道。
整部片把升降臂的优点运用得淋漓尽致,特效方面则可以用“淡雅”来形容。
背景音乐音效也运用得很好,没有那种台湾综艺的二百五效果。

看过一遍之后,对于整部片的评价大体上是,
不算盛大的场面,不算大牌的演员,不算著名的导演,不算深刻的故事,拼出了一部非常不错的电影。

值得观看!

今天,看了一下国产新片《天台》。
先粗略看了一下演员列表,没什么大牌演员。
现在比较喜欢独创性电影,看看再说。

整个电影的叙事手法比较单调,时间线采用的是顺序讲述。
镜头运用也一般般,有几处拍纸片下落的时候,纸片太靠近屏幕边缘。
配音可以算是影片的一个亮点,和影片基调很相称。
至于故事发展,就是一大败笔了,叙事太拖拉。

看过之后,我把《天台》也归结为DV电影一类。
虽然影片投入了不少,有升降机,投入了大批的人力。
但是,无论怎么说,影片还是没走出编剧策划的误区。
整个影片,从头至尾唯一的亮点,就是女孩上天台的动机。
而这一高潮却出现在1小时15分钟。
可以说,如果按照我的口味,看到10分钟的时候就会把片子给删了。

整个影片废镜头不少,但是镜头的角度都找得很好。
如果把叙事的时间线打乱,效果会更好。

既然是当DV电影看的,我没有去注意演员的亮点。
整个影片,除了没有台词的女主角,有台词的角色也就记者演得还不错。
而女主角,也就只是在房檐走来走去。
整体看来,就像是一部DV电影,只是资金投入的多了,有些拍摄手法的花样而已。

第一步:修改 include/discuzcode.func.php

查找

[php]$message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);[/php]

在下方添加

[php]$message = preg_replace("/\s*\[emule\](.+?)\[\/emule\]\s*/ies", "emu('\\1')", $message);[/php]

查找

[php] return $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", ' ', ' '), array('        ', '   ', '  '), $message));[/php]

替换成

[php] $message = $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", ' ', ' '), array('        ', '   ', '  '), $message));
return str_replace("/<br />","/\n",$message);[/php]

查找

[php]"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",[/php]

替换成

[php]"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",[/php]

在文件尾部的“?>”前添加

[php]
function emu($code) {
global $discuzcodes;
$discuzcodes['pcodecount']++;
$codecount=$discuzcodes['pcodecount'];
$code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
$view = '';$temp = $total = 0;
$searcharray = explode("\n",$code);
$view = "<br><br><table width=80% align=center cellspacing=1 cellpadding=5 class=tableborder><tr><td colspan=2 align=center class=header>下面是eMule专用的下载链接,您必须<a href='http://www.emule.org.cn/download/' target='_blank'>安装eMule</a>才能点击下载</td></tr>";
foreach($searcharray as $emule) {
if($emule!='' && eregi("^ed2k:\/\/",$emule)){
$temp++;
$emule = dhtmlspecialchars(trim($emule));
$emule_array = explode("|",$emule);
$total += $emule_array[3];
$totalper = esizecount($emule_array[3]);
$view.="<tr class=category><td class=smalltxt width=88%><input type=\"checkbox\" name=\"em$codecount\" value=\"$emule\" onclick=\"em_size('em$codecount');\" checked=\"checked\"><a href=\"$emule\"><script language=\"javascript\">document.write(unescape(decodeURIComponent(\"$emule_array[2]\")));</script></a></td><td class=smalltxt align=center>$totalper</td></tr>";
}
}
$total=esizecount($total);
if($temp>0){
$view.="<tr><td align=left><input type=\"checkbox\" id=\"checkall_em$codecount\" onclick=\"echeckAll('em$codecount',this.checked)\" checked=\"checked\"/> <label for=\"checkall_em$codecount\">全选</label> <input type=\"button\" value=\"下载选中的文件\" onclick=\"download('em$codecount',0,1)\"> <input type=\"button\" value=\"复制选中的链接\" onclick=\"copy('em$codecount')\"><div id=\"ed2kcopy_em$codecount\" style=\"position:absolute;height:0px;width:0px;overflow:hidden;\"></div></td><td class=smalltxt align=center id=\"size_em$codecount\">$total</div></table><br>";
}
$discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"eMuleMain\">$view</div></div>";
$discuzcodes['codecount']++;
return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}

function esizecount($filesize) {
if($filesize >= 1073741824) {
$filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
} elseif($filesize >= 1048576) {
$filesize = round($filesize / 1048576 * 100) / 100 . ' M';
} elseif($filesize >= 1024) {
$filesize = round($filesize / 1024 * 100) / 100 . ' K';
} else {
$filesize = $filesize . ' bytes';
}
return $filesize;
}
[/php]

第二步:修改include/javascript/common.js

在结尾添加

[php]
function checkAll(str,checked) {
var a = document.getElementsByName(str);
var n = a.length;

for (var i = 0; i < n; i++) {
a[i].checked = checked;
}
em_size(str);
}

function download(str, i, first) {
var a = document.getElementsByName(str);
var n = a.length;

for (var i = i; i < n; i++) {
if(a[i].checked) {
window.location=a[i].value;
if (first)
timeout = 6000;
else
timeout = 500;
i++;
window.setTimeout("download('"+str+"', "+i+", 0)", timeout);
break;
}
}

}

function copy(str) {

var a = document.getElementsByName(str);
var n = a.length;
var ed2kcopy = "";
for (var i = 0; i < n; i++) {
if(a[i].checked) {
ed2kcopy += a[i].value;
ed2kcopy += "";
}
}
copyToClipboard(ed2kcopy);

}

function copyToClipboard(txt) {
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}

function em_size(str) {
var a = document.getElementsByName(str);
var n = a.length;
try {
var input_checkall = document.getElementById("checkall_"+str);
var size = 0;
input_checkall.checked = true ;
for (var i=0; i < n; i++) {
if (a[i].checked) {
var piecesArray = a[i].value.split( "|" );
size += piecesArray[3]*1;
} else {
input_checkall.checked = false;
}
}
test = document.getElementById("size_"+str);
test.innerHTML = gen_size(size, 3, 1);
} catch (e) {

}
}

function gen_size(val, li, sepa ) {
sep = Math.pow(10, sepa); //小数点后的位数
li = Math.pow(10, li); //开始截断的长度
retval = val;
unit = 'Bytes';
if (val >= li*1000000000) {
val = Math.round( val / (1099511627776/sep) ) / sep;
unit = 'TB';
} else if (val >= li*1000000) {
val = Math.round( val / (1073741824/sep) ) / sep;
unit = 'GB';
} else if (val >= li*1000) {
val = Math.round( val / (1048576/sep) ) / sep;
unit = 'MB';
} else if (val >= li) {
val = Math.round( val / (1024/sep) ) / sep;
unit = 'KB';
}
return val + unit;
}
[/php]

第三步:后台添加Discuz!代码

标签:emule
替换内容:(无)
例子:[emule]下载地址[/emule]
解释:添加 eMule 电驴下载
参数个数:1
参数提示:使用emule标记,可以使输入的ed2k地址以超链接的形式在帖子中显示。
嵌套次数:1
图标:bb_emule.gif

上传文件,更新后台缓存,升级完毕!

最近在折腾自己的网站DV站,打算装个相册上去。

终于找到相册程序了,但都是GB2312编码的。鉴于网站都是UTF-8的,只好用UltraEdit手工转码。

但是,转成UTF-8的程序上传到服务器之后却频频白屏。setcookie和header均出错。这肯定是在header之前有数据输出。

用IE查看源代码,一无所获。用FireFox查看源代码,发现有6个无法显示的空字符。这才想起来是不是编码的问题。

Google了一下,UTF-8用BOM(Byte Order Mark,字节顺序标记)标记字节顺序。BOM一般加在文件头,长度三字节(EF BB BF)。如果程序发现BOM,则自动按照UTF-8处理。

问题就出在BOM上面。PHP是不支持BOM的,所以PHP在处理文件的时候会把BOM直接输出,也就导致了header之前存在输出,从而setcookie和header不起作用。

知道问题,解决起来也不难了。用UltraEdit将文件保存为“UTF-8 无 BOM”就行了。

有时候面对多个事件同时发生,却没有足够的资源去处理全部事件,或者无需全部处理,这时就要引入“优先事件”的概念。

举个例子,假设现在有一个请求指令同时包含如下错误:

  1. 校验检测错误(ECC error或者parity error)
  2. 无效操作代码(Illegal opcode)
  3. 无效地址(Invalid address)

而系统规定:

  • 如果出现无效操作代码,则抛弃当前指令并引发中断;
  • 如果操作代码正确,但地址错误,则记录错误地址并引发中断;
  • 如果操作代码和地址均正确,ECC错误,则向源设备返回错误信号。

按照正常思路,这段错误处理代码大致如下:
[code lang="verilog"]
if (ill_opcode) // Illegal opcode
begin
interrupt = 1'b1;
end
else if (inv_addr) // Invalid address
begin
rec_addr <= addr;
interrupt = 1'b1;
end
else if (ecc_err) // ECC error
begin
err_resp = 1'b1;
end
else
...
[/code]
这么写虽然没什么毛病,但是如果这样简化一下,既可以提高可维护性,又能达到同样的效果。
[code lang="verilog"]
case(1'b1)
ill_opcode: interrupt = 1'b1; // Illegal opcode
inv_addr:                     // Invalid address
begin
rec_addr <= addr;
interrupt = 1'b1;
end
ecc_err: err_resp = 1'b1;     // ECC error
default: ...
[/code]

10月9日消息,新浪科技日前获得了一份由中国科学院计算技术研究所与意法半导体公司编写的《龙芯2E处理器数据手册》,其间详尽披露了龙芯处理器的技术细节。

意法半导体代工龙芯2E

由于中科院计算所授权意法半导体制造龙芯2号,故处理器上有“ST”字样。

龙芯2E微处理器是一款实现64位MIPSⅢ指令集的通用RISC处理器,采用90nm的CMOS工艺,布线层为七层铜金属,芯片晶体管数目为4700万,芯片面积68mm×52mm,最高工作频率为1GHz,典型工作频率为800MHz,实测功耗5-7瓦。

龙芯2E具有128KB一级缓存、512KB二级缓存,单精度峰值浮点运算速度为80亿次/秒,双精度浮点运算速度为40亿次/秒,在1GHz主频下 SPEC CPU2000的实测分值达到500分,综合性能已经达到高端Pentium Ⅲ以及中低端Pentium 4处理器的水平。

龙芯2E改进空间还很大

DIY爱好者都熟知,二级缓存非常影响处理器的性能。

与早期的Pentium Ⅱ处理器类似,龙芯2E二级缓存的频率为处理器主频的一半。龙芯技术人员坦言,处理器达到1GHz的频率并非易事,半速运行主要考虑降低对延迟的要求,当时团队没有充裕的时间来设计一个足够快的512KB缓存。

此外,PCI总线有限的带宽也严重制约了系统性能。从目前的开发样板来看,VIA(威盛)南桥提供的外设接口有些过时,且PCI总线扩展增加了成本。

龙芯2C并未批量生产,首批推向市场的龙芯盒子会采用龙芯2E,而性能更为优良的龙芯2F也在酝酿之中。进步的细节诸如龙芯2E目前最高支持 DDR333,而龙芯2F将支持DDR2,且处理器会集成PCI-X或者PCI-Express,芯片组方面也有一些计划做大幅度的改进。

中科院计算所所长李国杰院士称,龙芯2F的性能将比龙芯2E提高20%至30%,并有望年底进行流片。

三大系列龙芯并行发展

龙芯1号处理器及其IP系列主要面向嵌入式应用,龙芯2号超标量处理器及其IP系列主要面向桌面应用,龙芯3号多核处理器系列主要面向服务器和高性能机应用。

根据应用需要,其中部分龙芯2号也可以面向部分高端嵌入式应用,部分低端龙芯3号也可以面向部分桌面应用。以后上述三个系列龙芯处理器将并行地发展。

[caption id="attachment_111" align="alignnone" width="450"]110_godson2e_news_101001.jpg 龙芯2E处理器,上有ST即意法半导体的LOGO[/caption]

[caption id="attachment_112" align="alignnone" width="450"]111_godson2e_news_101002.jpg HSBGA452封装的龙芯2E处理器[/caption]

 

2001年5月,在中科院计算所知识创新工程的支持下,龙芯课题组正式成立

2001年8月19日,龙芯1号设计与验证系统成功启动linux操作系统

2001年10月10日通过由中国科学院组织的鉴定

2002年8月10日,首片龙芯1号龙芯XIA50流片成功

2002年9月22日龙芯1号通过由中国科学院组织的鉴定

2002年9月28日举行龙芯1号发布会

2003年10月17日,龙芯2号首片MZD110流片成功

2004年9月28日,经过多次改进后的龙芯2C芯片DXP100流片成功

2005年1月31日举行了由中国科学院组织的龙芯2号鉴定会

2005年4月18日在人民大会堂召开了由科技部、中科院和信息产业部联合举办的龙芯2号发布会

2006年3月18日,龙芯2号增强型处理器CZ70流片成功

原文链接:http://www.pconline.com.cn/desktops/testing/0703/982201.html

前言

在IT领域,CPU作为一项核心技术,其难度让很多国内IC设计公司望而却步,从方舟诞生再到汉芯造假,中国人民在这场科技的浪潮中不断经历着期望与失望的更迭。就在这时,“龙芯”这个全新的名词又闯入了人们的视线,质疑声,甚至是谩骂声一时间此起彼伏,给这个刚刚平静不久的中国芯市场又掀起了不小的波澜。

中国研发CPU只有短短不到十年的时间,与国际巨头相比,还有很长的路要走,但是这丝毫不影响科研人员对国产CPU研发的热情,而“龙芯”正是在这种热情与执着的追求下诞生的,对于中国的芯片产业来讲,龙芯还只是个孩子,他需要的更多的是人们的包容与关怀,面对外界的质疑,“龙芯”的父母们也一直保持着低调的姿态,他们坚信产品会是一个最好的证明!更多内幕请关注PConline产业资讯栏目独家大型专题《中科院计算所龙芯研发基地完全探密》。

而龙梦盒子正是采用了龙芯处理器,这也是我国第一台拥有自主知识产权的电脑。对于首批测试用户实行1599元的预售价,相信其正式上市的价格也不会与此相差太远。今天,就让我们来一起揭开这个让众多人期盼已久的神秘盒子的面纱!

阅读全文 »

片名:留学加拿大 之 情深意重

主题:留学生是一群特殊而又普通的群体。
普通,是因为我们和普通人一样都在上学。
特殊,是因为我们不但承担了学习的压力,
生活也是我们的重要部分。
我们离开了父母,开始了自立的生活。
在这生活背后的酸甜苦辣,我们要独立体会。

夏天的新片,一触即发。

3月10日之前,确定素材/剧本。
3月24日之前,确定演员。
3月24日,第一次剧组会议。
5月12日之前,拍摄前期准备,剧本、设备、道具就位。
5月12日,开始拍摄。
6月30日,最后一次拍摄,开始后期剪辑。
8月18日,剪辑完成,开始后期合成、制作字幕。
9月1日,发布,庆祝蓝色蒲公英一周年。

在SMC拍摄过程中,我也算是过了回导演瘾。
当时的感想就一个字——累。
每天到拍摄场地之后总不能闲着。
要给演员说戏,提醒他们背台词。
要布置场景,选择拍摄机位。
要组织大家工作,至少不能让他们闲着。
后来发现,台词我背得比演员都熟练。

SMC过后,静下心来仔细想了想,不足之处太多了。
首先是剧本,这个剧本没有意义啊,不知道要表现什么。
然后是导演,大多数地方都没有很好的体现剧本的意思。
后期也是个问题,有很多效果都没做出来。
还有演员的现场发挥,根本就没有现场发挥,太死板。

看过了《爱情呼叫转移》的拍摄过程花絮。
其中的亮点,就是演员的现场发挥。
其实有很多编剧遗漏的小细节,
如果演员发挥得好,就是对影片的锦上添花。
导演不是万能的,但是在场景设计上一定要全力以赴。
专业的导演事先会勾画出场景草图,这对于我们太难了。
但是,合理利用场景、灯光、道具,会给影片增色不少。
导演一定要参加后期剪辑,以保证故事是按照导演的思想进行的。
编剧是影片关键所在。
一部片是好是坏,主要取决于故事性,其次才是叙事手法。
镜头的灵活运用,属于画龙点睛之笔,可以让电影生动活泼。

有这么一种说法,在DV普及了之后,谁都可以拍片子了。
的确是这样,但是拍好拍坏就是另外一回事了。
SMC可以理解为一个失败的作品,但是却是一个里程碑。
SMC实现了从无到有,并且给我个人积攒了大量的经验。

总结了这么多,还都是停留在理论层面。
等着夏天,在新片中实践一下。

下了决心去做,就要做出我们的特点。
不能一味跟在别人屁股模仿。
模仿的再像,也只是别人的影子而已。

片头一共1分30秒,背景音乐初步定下来选用Over the Hedge里面的《The Family Awake》。

三人出门,大概10秒

(以下三人路线穿插进行)

高岱路线:
上车
开车
高速公路(三秒慢镜头)
Rideau街
国会山
进校园
下车进楼

郭凡路线:
Rideau街公车站上7路车
7路车上跟拍
Bank Street街景
7路车进校园
下车进楼

Kelly路线:
进Rideau Center
上电梯
The Body Shop
Mexx
等公车
转小火车
下车进楼

穿插点:
1、郭凡上7路,7路车后跟高岱车,7路车开走街对面出现Kelly
2、Kelly进每一家店的时候穿插到其他两人
3、每一组镜头后面都是穿插点

其他拍摄要点:
1、三秒慢镜头要三脚架
2、Kelly在商场里用侧面跟拍
3、郭凡在公车上拍正面镜头
4、高岱车上在后座拍摄
5、可能需要补加在公交车下拍郭凡的镜头

暂时先想这么多。

前几天看了《爱情呼叫转移》,不可多得的新片啊。
顺便看了一下导演日志,获益匪浅。
原来当导演也有很多技巧,或者说,需要一个高速运转的头脑。

以前从不知道,导演还需要绘制场景草图。
以前也不知道,导演需要合理安排演员的档期与拍摄进度。
……
看来做导演真不是一件容易的事。光有热情是远远不够的。

夏天,我打算启动蓝色蒲公英第二部电影。
在有了第一部电影的经验,加上之后加盟的几位王牌成员,
估计第二部片会比第一部片在质量上有很大的飞跃。

前天拿下了Sony HDR-HC3,设备不成问题。
策划还要加上Rick。不过这家伙夏天要回国,运作还要我一个人。
剧本,最近还没有什么好主意。看看高岱那里有没有什么好素材。
导演,我想启用新人。目前还没有什么好的人选。
演员,等剧本出来再说吧。只要到时候有人不回国就行。

目前确定的项目成员:
策划:Rick、我
前期准备:高岱
拍摄协助:高莹莹

[caption id="attachment_65" align="alignnone" width="232"]64_psg_all_051130_page_09.jpg DRAM编码[/caption]

[caption id="attachment_66" align="alignnone" width="232"]65_psg_all_051130_page_10.jpg DRAM编码[/caption]

[caption id="attachment_67" align="alignnone" width="232"]66_psg_all_051130_page_11.jpg DRAM编码[/caption]