亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        丁 晴,楊 晨,丁 召,秦魯東(貴州大學 貴州 貴陽 550025)

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

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

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

        3)當需要撤銷某個新加功能 ,代碼被覆蓋后就無法與原有版本進行對比,很難做到設(shè)計的可重性。

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

        1 SVN管理流程

        1.1 基本工作模型

        SVN是一個自由開源的版本控制系統(tǒng),其采用拷貝-修改—合并模型[3],在這種模型里,每一個客戶通過項目版本庫拷貝各自所需要的文件,進行查看??蛻敉瑫r工作,修改各自的工作拷貝,最后,每個客戶提交各自的版本,并合并在一起成為最終的版本。

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

        1.2 工作拷貝

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

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

        1.3 修訂版本

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

        1.4 分支與合并

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

        圖2 分支示意圖Fig. 2 branch

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

        圖3 合并示意圖Fig. 3 merger

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

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

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

        圖4 團隊協(xié)作流程圖Fig. 4 Flow chart of teamwork

        2.1 檢出Verilog HDL程序

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

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

        2.2 程序修改

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

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

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

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

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

        2.3 解決沖突

        因為工程師A與工程師B修改了相同的一行,并且工程師A先于工程師B提交,SVN無法決定如何將工程師B的修改與Verilog HDL版本庫已有的修改進行合并,因此SVN產(chǎn)生沖突,需要工程師B來解決。工程師B需要先更新版本庫,檢出版本庫REV.2到本地,如圖7所示。

        圖7 更新圖Fig. 7 Updated

        2.4 完成程序

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

        3 結(jié)束語

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

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

        [1] 王長宏,陳朝陽,鄒雪城,等.Verilog HDL設(shè)計實例及其仿真與綜合[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] 羅杰,康華光. 兩種硬件描述語言VHDL/Verilog的發(fā)展及其應(yīng)用[J]. 電氣電子教學學報,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ù)及其在軟件開發(fā)庫的應(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] 劉樂.軟件項目管理與SVN[J].科技信息,2011,21(1):77-78.LIU Le.Software Project Management and SVN[J].Technology Information,2011,21(1):77-78

        [6] 夏宇聞. Verilog語法的基本概念[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添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實驗批準程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進
        恐怖犯罪刑事訴訟程序的完善
        色播视频在线观看麻豆| 日韩永久免费无码AV电影| 亚洲熟伦在线视频| 中文字幕有码在线人妻| 国产亚洲精品成人aa片新蒲金| 狠狠色综合网站久久久久久久| 国产老妇伦国产熟女老妇高清| 色偷偷亚洲精品一区二区| 曰韩无码av一区二区免费| 一本一道av无码中文字幕 | 久久久久久岛国免费网站| 国产免费网站在线观看不卡| 92午夜少妇极品福利无码电影| 成人欧美一区二区三区a片| 精品久久亚洲一级α| 亚洲精品一区二区三区在线观| 亚洲av无码一区东京热| 国产suv精品一区二区69| 中国精品久久久久国产| 日本一二三区免费在线| 毛片无码国产| 欧美成人久久久免费播放| 亚洲国产av中文字幕| 无码伊人66久久大杳蕉网站谷歌| 曰批免费视频播放免费直播| 欧美成人免费看片一区| 久久午夜一区二区三区| 亚洲av日韩av女同同性| 女同久久精品国产99国产精品| 无码伊人久久大香线蕉| 中国少妇久久一区二区三区| 色偷偷偷久久伊人大杳蕉| 国产亚洲精品成人无码精品网站| 中文字幕人成乱码中文| 五月天激情电影| 激情久久av一区av二区av三区| 特级毛片a级毛片在线播放www| 成年人干逼视频水好多| 米奇777四色精品人人爽| 精品一区二区三区免费爱| 中文字幕人妻被公喝醉在线|