久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

跟我學Cupl

 怪叔叔的書城 2024-06-25 發(fā)布于重慶

一、簡介

Cupl語言大家可能沒有聽說過,,實際上它是國內(nèi)唯一一種和ABEL語言類似,而且可以在Windows環(huán)境

上開發(fā)GAL系列PLD的編譯環(huán)境,。WinCupl這種編譯環(huán)境由ATMEL公司出品,,是免費軟件,下載頁面是

http://www./dyn/products/tools.asp?family_id=653,在該頁面中選擇WinCupl的下載,,登記

一下你的基本情況就能下載了,。下載時會給你注冊碼,很方便,。

一,、Cupl的保留字    Cuple的保留字包括以下的字串: APPEND  FORMAT OUT ASSEMBLY  FUNCTION  PARTNO ASSY   FUSE   PIN COMPANY  GROUP  PINNNODE CONDITION  IF   PRESENT DATE   JUMP   REV DEFAULT  LOC   REVISION DESIGNER  LOCATION  SEQUENCE DEVICE   MACRO  SEQUENCED ELSE   MIN   SEQUENCEJK FIELD   NAME   SEQUENCERS FLD   NODE   SEQUENCET

    這些字串是不能被用作其它的用途的。尤其是不能被當作標號使用,。Cupl語言有一些運算符,,包括: & # ( )  -    * + [ ]  /    : . .. /*  */  ; , ! '  =    @ $ ^

    下面是一個門電路的例子,通過這個例子我們可以學到基本的Cupl語言的用法,,在該文件中/**/之間

的為注釋,。

Name             Gates; Partno           CA0001; Date             07/16/87; Designer         G Woolheiser; Company          ATI; Location         San Jose, CA.; Assembly         Example; /******************************************************/ /*                                                    */ /* 這是一個表示 CUPL語言基本用法的例子                */ /* 這個例子實現(xiàn)基本門電路      .                      */ /*                                                    */ 

/******************************************************/ /*   目標設(shè)備: P16L8, P16P8, EP300, and 82S153        */ /******************************************************/ /* 輸入:  定義簡單門電路的輸入端                      */ Pin 1 = a;  /* 引腳1:輸入端,名稱是a  */ Pin 2 = b; /* 輸出端: 定義 PAL16L8 和 PAL16LD8器件的輸出端,。     */ Pin 12 = inva; /* 引腳11:輸出端,,名稱是inva */ Pin 13 = invb; Pin 14 = and;  /* 引腳14:輸出端,名稱是and,,與VHDL不同,,and不是關(guān)鍵字,可以作為標號使用 */ Pin 15 = nand; Pin 16 = or; Pin 17 = nor; Pin 18 = xor; Pin 19 = xnor;

/* 邏輯實現(xiàn)部分:  演示如何利用 CUPL 實現(xiàn)基本門電路 */ inva = !a;  /* 反相器              */ invb = !b; and  = a & b;  /* 與門             */ nand = !(a & b); /* 與非門              */ or   = a # b; /* 或門                */ xor  = a $ b; /* 異或門               */ nor  = !(a # b) /* 或非門               */ xnor = !(a $ b); /* 同或門     */

    通過上面例子的學習,,我們應(yīng)該對Cupl語言有了初步的了解,。     WinCupl不但可以編譯該文件,生成JED的熔絲文件,,還可以對該文件進行波形仿真,。在做小規(guī)模的

PLD設(shè)計的時候,使用GAL系列或者ATF系列的PLD比較方便,,也比較便宜,。

二,、Cupl文件的基本格式

在編寫Cupl語言源文件需要遵守一定的格式,源文件由頭部說明,、輸入引腳說明,、輸出引腳說明和邏

輯實現(xiàn)4部分組成,缺一不可,。

一,、頭部說明     頭部說明一般包括以下部分: Name WAITGEN ; Partno P9000183 ;  Revision 02 ; Date 1/11/89 ; Designer Osann ; Company Logical Devices, Inc. ; Assembly PC Memory Board ; Location U106 ; Device F155; Format ij ;     Name關(guān)鍵字用來說明邏輯文件的文件名,默認的擴展名是PLD,,因此可以不寫擴展名,。     Partno關(guān)鍵字用來說明對特定的PLD器件對應(yīng)的某個公司的部件號。如果不知道,,可以不要這個部分

,。      Revision 設(shè)計公司設(shè)計該源文件的版本號??梢圆惶?,可以沒有      Date     設(shè)計日期,可以不填,,可以沒有      Designer 設(shè)計者的名稱,,可以不填,可以沒有      Company  設(shè)計者所在公司名稱,,可以不填,,可以沒有      Assembly 本設(shè)計用于PC機板卡時的名稱,可以沒有      Location 本設(shè)計用于PC機板卡時所在的位置,,可以沒有      Device   必填字段,,用來選擇本設(shè)計所用的具體PLD器件型號,      Format   用來指定本文件編譯后產(chǎn)生的燒寫芯片文件的種類,。h表示產(chǎn)生HEX格式的ASCII碼文件,,i

表示HL格式的文件,j表示產(chǎn)生JEDEC格式的文件,。

二,、引腳說明     在PLD源文件中,所用的輸入輸出引腳都必須說明后才能使用,,因此,,可以象下面格式一樣說明引腳

:     PIN pin_n=[!]var ;     PIN是關(guān)鍵字,pin_n是引腳號碼,,var是引腳定義的名字,,該名字用在后面的邏輯實現(xiàn)中。!是可選的

,,用來說明引腳的極性,,如果沒有!,輸入是什么就是什么,,為同相,如果有!,,就表示輸入后信號反相,。    下面是一個實際的例子:    Pin 2 = !A;    Pin 3 = !B;    Pin 16 = Y;    Y = A & B;  /* 邏輯實現(xiàn)部分 */    當然,如果有一系列的引腳需要說明,,這些引腳又是連續(xù)的,,可以用[]符號來說明,比如    Pin[2..6] = A[1..5];    就表示引腳2到6用A1到A5來表示,,比較方便,。

三、邏輯實現(xiàn)部分    邏輯實現(xiàn)部分用來實現(xiàn)引腳之間的邏輯關(guān)系,。它主要靠一些邏輯操作符來實現(xiàn)引腳之間的關(guān)系,。這些

邏輯關(guān)系包括:      邏輯符號  例子     關(guān)系   操作優(yōu)先級         ! !A NOT 1  & A & B AND 2  # A # B OR 3         $       A $ B   XOR     4      其中,!表示非,,&表示與,#表示或,,$表示異或,,異或的操作優(yōu)先級最低,非的優(yōu)先級最高,。

     搞清楚了這些東西,,就可以自己實現(xiàn)最基本的邏輯門電路了。

三,、如何使用Wincupl軟件環(huán)境

WinCupl是ATMEL公司出品的Cupl語言的編譯環(huán)境,,用于PLD器件的編程,支持多種器件,,包括GAL系列

和ATF系列,。一般來說,ATF系列的同等級產(chǎn)品要必GAL的便宜,,比如AFT16V8就兼容GAL16V8,,可以擦寫100

次,價格上也便宜1塊~2塊,,性能都差不多,。     在ATMEL公司的SPLD/CPLD欄目中免費下載WinCupl后,可以得到一個注冊碼,,用這個碼就可以激活

WinCupl了,,這個碼沒有使用時間的限制。     WinCupl軟件包實際包括兩個部分,,一個是WinCupl,PLD的編譯環(huán)境,,一個是WinSim,,相當于MAX的波

形仿真部分。     接下來我們學習如何使用這個軟件,。

一,、編譯第一個源文件     第一次課我們舉了一個例子,說明了Cupl語言的基本結(jié)構(gòu),,下面我們做另一個例子,,就是兩輸入端與

門。具體步驟是:     1,、啟動WinCupl,。啟動完進入主界面后,單擊File菜單的New,,從New中單擊Projet,,就是新建一個工

程文件(其實還是PLD文件),在彈出的對話框中,,可以填您的源文件名字(Name),,填MYGATE,其它的

東西怎么填請您復(fù)習第2課的PLD文件頭部文件的說明部分,。這里有個特殊的地方,,就是器件(Device),

系統(tǒng)默認的是virtual,,就是不針對任何具體的部件,,這里我們改掉,改成g16v8a,,這個關(guān)鍵字兼容

ATF16V8,。     2、單擊OK后,,系統(tǒng)要你輸入你要用的輸入引腳數(shù),,因為我們只有兩個輸入端,因此填2,,單擊OK按鈕

,。     3、系統(tǒng)要你輸入要用到的輸出引腳數(shù),,填1,,單擊OK按鈕。     4,、系統(tǒng)要你輸入要使用到的中間節(jié)點數(shù),,我們不需要,填0,單擊OK按鈕,。這樣系統(tǒng)就建立了一個

PLD文件,,文件名就是MYGATE.PLD。系統(tǒng)將該文件顯示出來了,,就象下面這樣: Name     MYGATE ; PartNo   00 ; Date     2006-8-9 ; Revision 01 ; Designer WUJIAN ; Company  TALE ; Assembly None ; Location  ; Device   g16v8a ;

/* *************** INPUT PINS *********************/ PIN     =                         ; /*                                 */ PIN     =                         ; /*                                 */

/* *************** OUTPUT PINS *********************/ PIN     =                         ; /*                                 */

    因此,,這個文件是空的,我們填一下,,將輸入輸出引腳都填好,,把邏輯也寫完,就象下面這樣: Name     MYGATE ; PartNo   00 ; Date     2006-8-9 ; Revision 01 ; Designer WUJIAN ; Company  TALE ; Assembly None ; Location  ; Device   g16v8a ; /* *************** INPUT PINS *********************/ PIN  2   = a                        ; /*                                 */ PIN  3   = b                        ; /*                                 */

/* *************** OUTPUT PINS *********************/ PIN  12   = Y                        ; /*                                 */

Y = a & b;     寫好后,,我們需要編譯該文件,。在Run菜單中,單擊Device Dependent Compile,,就是基于器件型號

的編譯,。如果沒有出現(xiàn)什么鍵入錯誤,都能成功編譯,。編譯完成后,,我們來仿真一下看看波形。

二,、仿真的基本方法    編譯完成后,。單擊工具欄圖標的從右側(cè)數(shù)第2個,啟動WinSim,。啟動完成后,單擊WinSim菜單File中的

New,。     1,、在彈出的Design Properties對話框中,單擊Design File按鈕,,選中MYGATE.PLD文件,,按“確認

”按鈕繼續(xù)。在Design Properties對話框中,,單擊OK按鈕確認,。     2、接下來WinSim會提示是否創(chuàng)建MYGATE.SIM文件并編譯它,,單擊“是”繼續(xù),。     3、不管接下來的提示,,在WinSim中Signal(信號)菜單中單擊Add,,在彈出的Add Signal對話框中不

斷單擊OK按鈕將a、b、y三個信號加到波形圖中,。單擊Done關(guān)閉該對話框,。     4、在WinSim的File菜單中單擊Save項保存該項目,。     5,、在黑色的網(wǎng)格的左上方有個Value,Value右邊有個1,,在1所在的灰色條上單擊鼠標右鍵,,在彈出

的菜單中的Add Vector上單擊鼠標左鍵,在彈出的對話框中輸入3,,表示增加波形仿真的3段,。     6、在a的右側(cè)的波形上單擊鼠標右鍵,,依次選0,,0,1,,1,,在b的波形上單擊鼠標右鍵,依次選0,,1

,,0,1,。     7,、保存該工程。在Simulator菜單中選擇Simulator開始仿真,,就可以看到y(tǒng)的波形了,。如下圖所示。

    本次課我們學習了如何利用WinCupl進行PLD邏輯設(shè)計和基本仿真方法,。祝大家工作順利,,學習愉快。 四,、在Proteus中仿真

在Proteus中的仿真步驟如下,,具體方法這里也不作介紹了,如不會者,,請參見一些入門教程,。

  1、啟動Proteus(這個好像不用多說了吧),;

  2,、添加以下器件:

  ①AM16V8(這是我們所需要仿真的器件)

  ②LED-RED

 ?、跮OGICSTATE

 ?、躌ESPACK-8

  3、 擺放好元器件,。按如圖6所示連接好:

元器件擺放好后的效果

點擊看原圖

圖6  元器件擺放好后的效果

4,、載入“.jed”文件;

  就像載入單片機“.HEX”文件一樣(如果熟悉Proteus操作的可按照自己的方法載入文件),,將鼠標放在U1上,,右擊,然后左擊,,在“JEDEC Fuse Map File:”處,,如圖7(a),找到我們剛剛保存源文件的地方,,選擇“Encoder.jed”文件,,然后打開,如圖7(b),,最后點擊“OK”,,如圖8(C)。

將鼠標放在U1上,,右擊,,然后左擊,在“JEDEC Fuse Map File:”處

(a)

找到我們剛剛保存源文件的地方

點擊看原圖

(b)

最后點擊

(C)

圖7  載入“.jed”文件

  5,、U1(AM16V8)的第2(I1),、3(I2)、4(I3)腳,,添加DCLOCK,,如圖8,

添加

圖8  添加“DCLOCK”

  第2腳(I1)頻率設(shè)置為4 Hz,,第3腳(I2)頻率設(shè)置為2 Hz,第4腳(I3)頻率設(shè)置為1 Hz如圖9,,

設(shè)置DCLOCK的頻率

圖9  設(shè)置DCLOCK的頻率

  6,、點擊“運行”按鈕行進行仿真,我們會發(fā)現(xiàn):在滿足使能條件時(E1=1,,E2=0,,E3=0),LED燈從左至右依次循環(huán)點亮,,如圖10,,達到我們的設(shè)計要求。

仿真效果

點擊看原圖

圖10  仿真效果

  7、我們也可以用74LS138來仿真,,這樣有一個對比,,最終對比效果如圖11,我們發(fā)現(xiàn)兩個器件仿真效果是一致的,。

與74LS138仿真對比

點擊看原圖

圖11  與74LS138仿真對比

  結(jié)語:

  我們已經(jīng)介紹了PLD器件的編程方法,、編程工具WinCupl的使用方法以及如何進行在Proteus中的仿真。大家可以根據(jù)需求設(shè)計自己需要的功能,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多