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

基于Verilog HDL的電子電路設計圖的一種可視化編程方法

2014-11-19 16:25:23鄧凱升趙宇晴
卷宗 2014年10期
關鍵詞:信息

鄧凱升 趙宇晴

隨著計算機軟件工程技術的迅速發展,可視化編程技術已經成為當今軟件開發最重要的工具和手段。尤其是Power Builder、Visual C++等開發工具的出現,大大推動了可視化編程技術的發展。本文旨在探索可視化編程技術在基于硬件描述語言的電子電路設計領域的實現,介紹一種將電路設計圖自動轉換成硬件描述語言(Verilog HDL)的方法。

1.設計思想及實現方法

1.1.電路圖的處理思想

電路圖的處理是指將電路設計圖的信息轉換成可處理的數據存儲到數據結構中的過程。在電子電路圖設計者完成畫圖后,將電路圖的圖形信息轉化成數據結構信息進行存儲,方便進行接下來硬件描述語言的自動生成。我們選擇在電路圖完成后統一進行信息轉換,這樣不容易出錯,而且實時轉換可能會造成轉換信息的反復更新重寫,增加了轉換過程的設計負擔、降低了效率。具體的數據結構描述見1.2。

1.2 主要數據結構

每個電路圖都由一個類對象存儲,類對象的定義如下:

struct mycircuit

{

gate[];//gate類數組,記錄門信息

ngate; //整型變量,記錄電路中門的個數

pin[]; //pin類數組,記錄端口詳細信息

npin; //整型變量,記錄電路中端口的個數

wire[]; //wire類數組,記錄線路信息

nwire; //整型變量,記錄電路中連線的條數

}此處引入一個新的概念——電路信息表,是在邏輯上存儲電路連接關系的數據結構。和路由器維護的路由表原理相似,電路圖中的每個元件都會維護一張電路信息表,這張表記錄了該元件的位置,該元件的種類,以及該元件的連線情況。

下面以組合邏輯電路為例建立示范電路信息表:

struct position /* Position類,記錄元器件所在位置的坐標*/ {x;y;};

struct gate/* gate類,記錄門信息*/ {

inwrie[];//整型數組,輸入線路編號

nwin;//整型變量,輸入線路數量

outwrie[];//整型數組,輸出線路編號

nwrout;//整型變量,輸出線路數量

psi;//position類對象,門的位置信息

type;//整型標志位,區分電路中門類型

};

struct pin/* pin類,記錄輸出輸出端口信息*/ {

psi;//position類對象,記錄端口位置

type;//整型變量,標志位,0為輸入端口,1為輸出端口

iowire;//整型變量,記錄與該端口連接的線路編號

};

struct wire/*wire類,存儲連線相關的信息*/ {

start;//position類對象,線頭位置

end;//position類對象,線尾位置

endgate;//整型變量,起點連接的門編號

startgate;//整型變量,終點連接的門編號

endpin;//整型變量,起點連接的端口編號

startpin;/整型變量,終點連接的端口編號

status;//整形變量,生成硬件描述語言過程中的狀態位,當前算法生成過程只需一次掃描

};

為了提高效率,電路信息表中對其他類的保存均由整型數組記錄其編號,編號是自動分配的,具體分配方法見1.3。

電路信息表亦可設置為在每個gate類對象與pin類對象中記錄其上游器件和下游器件,這樣則不用設置wire類,但生成硬件描述語言時需要對電路進行深度優先遍歷,增加了時間復雜度,本文采用的記錄方法,只需對每個門生成對應賦值語句,不用考慮遍歷順序,詳細算法見1.4.2。

1.3.生成電路信息表

生成電路信息表的過程主要包括對預處理得到的關鍵字段的處理和電路連接關系的判斷。其中關鍵字段的處理主要包括:連線信息處理、輸入輸出端口以及門信息處理。

其中連線信息處理包括線路信息提取、拐線合并和線路排序。為了方便存儲,我們并不存儲完整的拐線,而是將其分割為相連接的直線,故一條完整的拐線由若干條直線連接而成,記錄每條wire的坐標時按照從上到下,從左到右的順序區分起點和終點。

考慮到硬件描述語言的連續賦值語句中會出現線路編號,為了增加交互性和可讀性,我們這里按照線路起點的橫坐標由小到大、縱坐標從小到大進行排序,自動匹配編號,方便用戶對應位置來理解、檢查電路。

輸入輸出端口編號也會出現在最終生成的Verilog 硬件描述語言中,因此需要也根據端口位置信息進行一次排序處理。

通過以上操作,我們已經將電路設計圖的元件位置信息以及元件編號都存到了相應的數據結構中,接下來的電路的邏輯連接關系判斷正是基于坐標信息實現的。判斷一條連線是否連接到端口或門,是通過連線的起點、終點坐標和端口或門的尺寸大小及坐標等信息來判定的。在這一結論的基礎上,我們可以對電路信息表中的各字段進行賦值從而完成電路信息表的構建。

1.4.生成數據流描述的Verilog HDL硬件描述語言

1.4.1模塊及聲明

Verilog HDL中,需要在模塊開始就聲明所有端口和模塊名,算法如下:先輸出固定字符“module test(”,然后在括號內執行:

for(1;i<=pin的個數;i++){

輸出“pin_i”;

if(i不等于pin的個數){

輸出“,”;

}

else 輸出“);”

}

然后進行端口指定,即聲明端口的輸入輸出屬性,算法如下:

for(i=1;i<=pin的個數;i++){

if(pin[i].type = 0)

輸出“input pin_i”;

else if(pin[i].type = 1)

輸出“output pin_i”;

}

接下來聲明wire型變量,需要注意的是,如果連線的一端有輸入輸出端口,則在連續賦值語句中不會出現該線路而是由相應的輸入輸出端口替代,相應實現過程算法為:

for(i=1;i<=wire的個數;i++)

if(wire[i]的首尾均是gate)

輸出“wire W_i;”

1.4.2連續賦值語句

由于數據流描述的模塊是連線與端口的邏輯運算的描述,即有多少個門就有多少連續賦值語句,所以只需要對門進行一次遍歷。

生成算法為:

for (gate[i]){

輸出“gate[i]的輸出線路 or該線路終點連接的端口”;//賦值表達式左端

輸出 “=”; //賦值運算符

for(gate[i]的每個輸入線路j) //賦值表達式右端{

輸出“j or j起點連接的端口”;

if(j不是最后一條線路)

輸出“gate[i].type對應的邏輯運算符”;

}

}

上述算法中,若連線的一端連接端口,則在生成過程中用端口名替換線路名。

以這種方法對每個門進行掃描,最后加上“endmodule”即完成了數據流的模塊硬件語言描述轉換。

1.5.結構化模塊調用

結構化模塊調用是Verilog HDL普遍使用的一種描述方法:對于用戶已經連接好的模塊,進行封裝保存,記錄該模塊的名稱、輸入輸出接口和對應的Verilog HDL代碼。當用戶在圖形化界面中調用自定義模塊時,先是生成自定義模塊的實例化代碼,保存為單獨的用戶自定義Verilog文件,然后將該模塊視作一個封裝起來的元件,用基于位置的連接判斷方法確定每個接口與當前電路中wire的連接關系。然后在頂層模塊生成過程中,根據用戶指定的函數名稱和判斷得到的端口信息來調用該模塊。

本文以組合邏輯電路為例,介紹了一種將電子電路設計圖自動轉化為Verilog HDL硬件描述語言的方法,若再進行引腳分配,將生成的硬件描述語言下載到現場可編程邏輯陣列中,就可以完成整個EDA的設計。該方法可以作為可視化編程工具的原型進行學習、使用和進一步開發。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 激情亚洲天堂| 欧美在线中文字幕| 欧美国产精品不卡在线观看| 亚洲日韩在线满18点击进入| 日韩高清一区 | 99热这里只有精品免费| 亚洲激情99| 欧美精品不卡| 亚洲精品另类| 欧美一道本| 国产乱肥老妇精品视频| 色综合成人| 国产对白刺激真实精品91| 99无码中文字幕视频| 精品国产免费观看| 在线播放真实国产乱子伦| 人妻丰满熟妇AV无码区| 一级爱做片免费观看久久| yjizz国产在线视频网| 亚洲成人精品| 国产日本欧美在线观看| 色婷婷成人网| 中文字幕亚洲另类天堂| 一本二本三本不卡无码| 国产av剧情无码精品色午夜| 无码国产偷倩在线播放老年人 | 成人在线第一页| 日韩视频福利| 在线欧美日韩国产| 亚洲精品视频网| 国产全黄a一级毛片| 中文国产成人精品久久一| 92精品国产自产在线观看| 国产福利一区视频| 精品无码一区二区三区电影| 国产精品任我爽爆在线播放6080 | a色毛片免费视频| 99re在线观看视频| 久久久久九九精品影院| 亚洲 欧美 偷自乱 图片| 九九九国产| 国产乱码精品一区二区三区中文| 亚洲最猛黑人xxxx黑人猛交 | 狼友av永久网站免费观看| 免费国产黄线在线观看| 日韩精品资源| 国产成人福利在线视老湿机| 91久久国产综合精品女同我| 亚洲天堂日韩在线| 亚洲av无码人妻| 色135综合网| 婷婷色在线视频| 四虎AV麻豆| 国产精品亚洲精品爽爽| 国产日韩欧美在线视频免费观看| 国产精品久线在线观看| 亚洲AV无码不卡无码| AV不卡无码免费一区二区三区| 国产成人8x视频一区二区| 一级成人a毛片免费播放| 成人免费一区二区三区| 一级毛片免费不卡在线| 亚洲人成网址| 欧美性爱精品一区二区三区 | 国产色婷婷视频在线观看| 久久香蕉国产线看观看式| 97se亚洲综合| 精品福利国产| 国产人成乱码视频免费观看| 国产乱人免费视频| 欧美精品v欧洲精品| 国产精品亚洲欧美日韩久久| 在线不卡免费视频| 婷婷色一二三区波多野衣| 国产免费一级精品视频| 久久国产精品无码hdav| 国产欧美专区在线观看| 国产第一页屁屁影院| a级毛片免费看| 一区二区影院| 成年午夜精品久久精品| 亚洲中文无码av永久伊人|