999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SVN在Verilog HDL開(kāi)發(fā)過(guò)程中的應(yīng)用

2014-01-16 09:21:36秦魯東貴州大學(xué)貴州貴陽(yáng)550025
電子設(shè)計(jì)工程 2014年5期
關(guān)鍵詞:程序

丁 晴,楊 晨,丁 召,秦魯東(貴州大學(xué) 貴州 貴陽(yáng) 550025)

隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)與電子應(yīng)用之間的聯(lián)系變得越來(lái)越重要,電子設(shè)計(jì)自動(dòng)化取得了巨大的進(jìn)步。電子設(shè)計(jì)自動(dòng)化技術(shù)以計(jì)算機(jī)為工作平臺(tái),結(jié)合電子技術(shù)來(lái)幫助工程師開(kāi)發(fā)新的電子產(chǎn)品,其主要采用硬件語(yǔ)言實(shí)現(xiàn)大規(guī)模的數(shù)字系統(tǒng)設(shè)計(jì)[1]。Verilog HDL是一種硬件描述語(yǔ)言可以進(jìn)行各種級(jí)別的數(shù)字邏輯設(shè)計(jì),如系統(tǒng)級(jí)邏輯設(shè)計(jì)、行為級(jí)邏輯設(shè)計(jì)、RTL級(jí)邏輯設(shè)計(jì)、門(mén)級(jí)邏輯設(shè)計(jì)。Verilog HDL的程序是由模塊(module)構(gòu)成的,通過(guò)模塊描述可以直接定義端口和信號(hào),模塊具有多層次,每個(gè)模塊對(duì)應(yīng)特定的功能,多個(gè)模塊通過(guò)網(wǎng)表相連就可以形成一個(gè)大型設(shè)計(jì)[2]。對(duì)于一個(gè)大型設(shè)計(jì),編輯Verilog HDL代碼耗費(fèi)的時(shí)間比較長(zhǎng),可能會(huì)存在以下問(wèn)題:

1)新版本的程序引入了新的Bug,需要回到以前的版本去查找Bug的來(lái)源;

2)同一程序由不同工程師編寫(xiě)、維護(hù)與測(cè)試,不同工程師的工作可能產(chǎn)生沖突;

3)當(dāng)需要撤銷(xiāo)某個(gè)新加功能 ,代碼被覆蓋后就無(wú)法與原有版本進(jìn)行對(duì)比,很難做到設(shè)計(jì)的可重性。

由于在Verilog HDL項(xiàng)目開(kāi)發(fā)中存在上述問(wèn)題,代碼的版本管理與控制就非常必要。因此,本文提出了利用SVN的特性,對(duì)Verilog HDL項(xiàng)目代碼開(kāi)發(fā)、版本控制等問(wèn)題進(jìn)行研究,以提高開(kāi)發(fā)的效率。

1 SVN管理流程

1.1 基本工作模型

SVN是一個(gè)自由開(kāi)源的版本控制系統(tǒng),其采用拷貝-修改—合并模型[3],在這種模型里,每一個(gè)客戶(hù)通過(guò)項(xiàng)目版本庫(kù)拷貝各自所需要的文件,進(jìn)行查看。客戶(hù)同時(shí)工作,修改各自的工作拷貝,最后,每個(gè)客戶(hù)提交各自的版本,并合并在一起成為最終的版本。

基本過(guò)程為:檢出工作副本—編輯修改—合并服務(wù)器中的修改—提交修改,如圖1所示。

1.2 工作拷貝

一個(gè)SVN工作拷貝是用戶(hù)本地機(jī)器一個(gè)普通的目錄,保存著一些文件,用戶(hù)可以隨意編輯文件,在用戶(hù)完成修改之前,SVN不會(huì)把用戶(hù)的修改與其他人的合并,也不會(huì)把用戶(hù)的修改展示給別人。當(dāng)用戶(hù)在工作拷貝做了一些修改并且確認(rèn)它們工作正常之后,SVN提供了一個(gè)命令可以“發(fā)布”用戶(hù)的修改給項(xiàng)目中的其他人,如果別人發(fā)布了各自的修改,SVN提供了手段可以把這些修改與用戶(hù)的工作目錄進(jìn)行合并[4]。

圖1 SVN工作流程圖Fig. 1 Flow chart of SVN

1.3 修訂版本

當(dāng)版本庫(kù)接收到一個(gè)修改后的版本,更新后版本庫(kù)發(fā)生了新的變化,這樣的一個(gè)過(guò)程就稱(chēng)為修訂版本。SVN的特色之一就是原子提交[5],一個(gè)修訂版本要么全部提交,要么都保持不變,這樣可以防止部分文件未被提交的狀況發(fā)生。每次的提交都會(huì)產(chǎn)生一個(gè)新的獨(dú)一無(wú)二的修訂版本號(hào),SVN版本庫(kù)會(huì)自動(dòng)進(jìn)行數(shù)據(jù)傳輸,后修改過(guò)的版本也存有先前的內(nèi)容,不會(huì)互相沖突。

1.4 分支與合并

完成一個(gè)階段的工作后,工程師需要將分支上的修改合并到最新版本。一個(gè)分支就像一個(gè)拷貝的存在,并從那里離開(kāi),并具有自己的歷史。如圖2所示。

圖2 分支示意圖Fig. 2 branch

當(dāng)分支合并后,分支就失去意義。平時(shí)在進(jìn)行開(kāi)發(fā)時(shí),一般都會(huì)有多版本分支同時(shí)進(jìn)行,當(dāng)某一個(gè)版本具備上線條件后,需要在上一個(gè)已發(fā)布的版本基礎(chǔ)上進(jìn)行發(fā)布,才能夠避免出現(xiàn)版本相互覆蓋,因此往往需要對(duì)版本之間代碼進(jìn)行合并,合并的過(guò)程中網(wǎng)頁(yè)地址(URL)及版本需填寫(xiě)起始的和結(jié)束的,這將影響合并后所得到的版本。假設(shè)這次分支是從主干版本3上創(chuàng)建的,而分支的起始版本是4,最終分支完成后的版本是7,主干版本8是分支版本4的差異和分支版本6的差異的合并,如圖3所示。那么在主干版本沒(méi)有更新的前提下,工程師把分支功能合并到主干上,在主干版本3的工作副本中點(diǎn)擊合并,在“起始URL 和版本”填寫(xiě)主干的URL和版本3,在“結(jié)束的URL 和版本”填寫(xiě)分支的URL和版本7即可。

圖3 合并示意圖Fig. 3 merger

2 Verilog HDL開(kāi)發(fā)基于SVN平臺(tái)的工作流程

Verilog HDL大型軟件的開(kāi)發(fā)是一個(gè)非常繁瑣的過(guò)程。在軟件的開(kāi)發(fā)過(guò)程中,很多時(shí)候需要團(tuán)隊(duì)協(xié)作來(lái)完成。若是多人完成一個(gè)程序時(shí),需要頻繁查看別人的進(jìn)度或者代碼,交流起來(lái)十分不便,這時(shí)就需引入SVN強(qiáng)大的協(xié)作功能,方便開(kāi)發(fā)者隨時(shí)了解他人進(jìn)度以便及時(shí)分享自己的工作。

在本論文中工程師A和工程師B在兩個(gè)電腦分別完成Verilog HDL程序編程,工程師B的電腦通過(guò)查找工程師A電腦IP,設(shè)定與工程師A相同的IP192.168.1.107來(lái)連接兩臺(tái)電腦,工程師B可以共享工程師A電腦中SVN版本庫(kù)的資源,分步驟來(lái)說(shuō)明其工作過(guò)程,如圖4所示是團(tuán)隊(duì)協(xié)作流程圖。

圖4 團(tuán)隊(duì)協(xié)作流程圖Fig. 4 Flow chart of teamwork

2.1 檢出Verilog HDL程序

在處理一個(gè)需要多人協(xié)同修改的程序前,團(tuán)隊(duì)中的每個(gè)成員都要檢出(check out)SVN版本庫(kù)中現(xiàn)有的Verilog HDL程序文件目錄REV.1。在本文中假設(shè)工程師A和工程師B為同一個(gè)項(xiàng)目團(tuán)隊(duì)的成員,在進(jìn)行檢出后,工程師們都有了一份相同的Verilog HDL程序文件工作副本REV.1,然后才能開(kāi)始修改Verilog HDL程序中自己負(fù)責(zé)的部分。如圖5所示,工程師B從服務(wù)器中的SVN版本庫(kù)檢出完成。

圖5 檢出完成圖Fig. 5 Detection Complete

2.2 程序修改

假設(shè)工程師A和工程師B兩人對(duì)Verilog HDL多路選擇器(MUX)程序[6]進(jìn)行修改,代碼如下:

工程師A在原有程序上添加“二進(jìn)制到BCD碼轉(zhuǎn)換”模塊,并將“VERSION 1.0”修改為“VERSION 1.1”,工程師A將修改后的程序提交,版本號(hào)更新為REV.2。代碼如下:

工程師B在原有模塊上添加“二進(jìn)制到格雷碼轉(zhuǎn)換”模塊,在兩人各自獨(dú)立工作的情況下,工程師B同樣將“VERSION 1.0”修改為“VERSION 1.1”。代碼如下:

由于兩人修改了程序的相同行,即“VERSION 1.0”一行,則工程師B在提交他的修改時(shí),SVN程序會(huì)產(chǎn)生沖突警告,他將得到錯(cuò)誤信息,提示其Verilog HDL工作副本已經(jīng)過(guò)期,他的提交失敗,如圖6所示。

圖6 提交失敗圖Fig. 6 Commit failed

2.3 解決沖突

因?yàn)楣こ處烝與工程師B修改了相同的一行,并且工程師A先于工程師B提交,SVN無(wú)法決定如何將工程師B的修改與Verilog HDL版本庫(kù)已有的修改進(jìn)行合并,因此SVN產(chǎn)生沖突,需要工程師B來(lái)解決。工程師B需要先更新版本庫(kù),檢出版本庫(kù)REV.2到本地,如圖7所示。

圖7 更新圖Fig. 7 Updated

2.4 完成程序

工程師 B在解決沖突之后還要通過(guò)SVN Resolved命令通知SVN沖突已經(jīng)解決,最終工程師B可以提交他的修改形成一個(gè)新的Verilog HDL程序修訂版REV.3,如圖8所示。

3 結(jié)束語(yǔ)

圖8 提交完成圖Fig. 8 Submit completed

SVN平臺(tái)已經(jīng)成為現(xiàn)代協(xié)同工作提高效率的一種非常有效的手段,并且在當(dāng)今網(wǎng)絡(luò)行業(yè)中已經(jīng)有許多成熟的產(chǎn)品。SVN平臺(tái)的開(kāi)發(fā)潛力非常大,可以用于各行各業(yè)。本文介紹了SVN平臺(tái)在Verilog HDL開(kāi)發(fā)中的工作原理及應(yīng)用方法,這種技術(shù)能極大地提高團(tuán)隊(duì)的工作效率,達(dá)到了設(shè)計(jì)要求。

[1] 王長(zhǎng)宏,陳朝陽(yáng),鄒雪城,等.Verilog HDL設(shè)計(jì)實(shí)例及其仿真與綜合[J].計(jì)算機(jī)應(yīng)用,2001,27(12):19-22.WANG Chang-hong,CHEN Chao-yang,ZOU Xue-cheng,et al.Verilog HDL design examples and simulation and synthesis[J].Computer Applications,2001,27(12):19-22.

[2] 羅杰,康華光. 兩種硬件描述語(yǔ)言VHDL/Verilog的發(fā)展及其應(yīng)用[J]. 電氣電子教學(xué)學(xué)報(bào),2002,24(4):1-4.LUO Jie,KANG Hua-guang.Two hardware description language VHDL / Verilog Development and Application[J]. Electrical Electronic Education,2002,24(4):1-4.

[3] 高平,周磊.版本控制系統(tǒng)—Subversi0n技術(shù)及其在軟件開(kāi)發(fā)庫(kù)的應(yīng)用[J].航空電子技術(shù),2012,44(1):24-28.GAO Ping,ZHOU Lei.Version control system—Subversi0n technology and its application in software development library[J].Avionics Technology,2012,44(1):24-28.

[4] BenCollins-Sussman,BrianW.Fitzpatrick,C.MichaelPilato,Subversion book r3600 [EB/OL].(2002).http://creativecommons.org/licenses/by/2.0/.pdf.

[5] 劉樂(lè).軟件項(xiàng)目管理與SVN[J].科技信息,2011,21(1):77-78.LIU Le.Software Project Management and SVN[J].Technology Information,2011,21(1):77-78

[6] 夏宇聞. Verilog語(yǔ)法的基本概念[J].電子產(chǎn)品世界,2002,21(1):76-79.XIA Yu-men.The basic concept Verilog Syntax[J].Electronic Products,2002,21(1):76-79.

猜你喜歡
程序
給Windows添加程序快速切換欄
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于VMM的程序行為異常檢測(cè)
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國(guó)刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 久久精品国产在热久久2019| 亚洲第一黄片大全| 亚洲免费三区| 国产成人免费手机在线观看视频| 黄色网页在线观看| 免费观看成人久久网免费观看| 亚洲无码四虎黄色网站| 国产成人超碰无码| 就去吻亚洲精品国产欧美| 国产麻豆福利av在线播放| 中国国产A一级毛片| 成年人久久黄色网站| 九九热这里只有国产精品| 9丨情侣偷在线精品国产| 成年看免费观看视频拍拍| 国产va视频| 久久精品日日躁夜夜躁欧美| 免费看美女自慰的网站| 国产成人一区免费观看| 欧美精品不卡| аⅴ资源中文在线天堂| 婷婷午夜天| 中美日韩在线网免费毛片视频| 尤物精品视频一区二区三区| 第九色区aⅴ天堂久久香| 97国产在线播放| 91色在线观看| 97国产在线视频| 97久久免费视频| 国产免费a级片| 国产成人精品高清不卡在线| 国产精品熟女亚洲AV麻豆| 欧美成人A视频| 欧美一区二区啪啪| 亚洲第一国产综合| 丁香婷婷在线视频| 国产精品yjizz视频网一二区| 爱色欧美亚洲综合图区| 国产www网站| 亚洲无码日韩一区| 夜精品a一区二区三区| 欧美在线综合视频| 国产乱码精品一区二区三区中文| 亚洲三级电影在线播放| 欧美第一页在线| 欧美人人干| 亚洲第一黄片大全| 精品一区二区三区四区五区| 一区二区自拍| 国产av色站网站| 亚洲精品色AV无码看| 久久国产亚洲偷自| 亚洲天堂自拍| 亚洲天堂伊人| 国产电话自拍伊人| 免费看一级毛片波多结衣| 久久国产拍爱| 成人在线视频一区| 日韩精品亚洲精品第一页| 中文字幕在线观看日本| 99er精品视频| 国产一区二区精品福利| 精品久久久久久成人AV| 美女扒开下面流白浆在线试听 | 伊人AV天堂| 在线免费不卡视频| 亚洲乱强伦| 99尹人香蕉国产免费天天拍| 国产成人无码久久久久毛片| 中国精品久久| 播五月综合| 中国一级特黄视频| 国产JIZzJIzz视频全部免费| 成人午夜网址| 国产在线自揄拍揄视频网站| 久久综合婷婷| 中国特黄美女一级视频| 久久精品一品道久久精品| 国产精品女人呻吟在线观看| 中文字幕调教一区二区视频| 免费观看成人久久网免费观看| 在线色综合|