WIN Cupl使用_第1頁(yè)
WIN Cupl使用_第2頁(yè)
WIN Cupl使用_第3頁(yè)
WIN Cupl使用_第4頁(yè)
WIN Cupl使用_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流WIN Cupl使用.精品文檔.跟我學(xué)Cupl之一簡(jiǎn)介Cupl語(yǔ)言大家可能沒(méi)有聽(tīng)說(shuō)過(guò),實(shí)際上它是國(guó)內(nèi)唯一一種和ABEL語(yǔ)言類(lèi)似,而且可以在Windows環(huán)境 上開(kāi)發(fā)GAL系列PLD的編譯環(huán)境。WinCupl這種編譯環(huán)境由ATMEL公司出品,是免費(fèi)軟件,下載頁(yè)面是一下你的基本情況就能下載了。下載時(shí)會(huì)給你注冊(cè)碼,很方便。一、Cupl的保留字 Cuple的保留字包括以下的字串:APPENDFORMATOUTASSEMBLYFUNCTIONPARTNOASSYFUSEPINCOMPANYGROUPPINNNODECONDITIONIFPRESENTD

2、ATEJUMPREVDEFAULTLOCREVISIONDESIGNERLOCATIONSEQUENCEDEVICEMACROSEQUENCEDELSEMINSEQUENCEJKFIELDNAMESEQUENCERSFLDNODESEQUENCET 這些字串是不能被用作其它的用途的。尤其是不能被當(dāng)作標(biāo)號(hào)使用。Cupl語(yǔ)言有一些運(yùn)算符,包括:&#() - *+ / :./* */;,! = $ 下面是一個(gè)門(mén)電路的例子,通過(guò)這個(gè)例子我們可以學(xué)到基本的Cupl語(yǔ)言的用法,在該文件中/*/之間的為注釋。Name Gates;Partno CA0001;Date 07/16/87;Designer G

3、Woolheiser;Company ATI;Location San Jose, CA.;Assembly Example;/*/* */* 這是一個(gè)表示 CUPL語(yǔ)言基本用法的例子 */* 這個(gè)例子實(shí)現(xiàn)基本門(mén)電路 . */* */*/* 目標(biāo)設(shè)備: P16L8, P16P8, EP300, and 82S153 */*/* 輸入: 定義簡(jiǎn)單門(mén)電路的輸入端 */Pin 1 = a; /* 引腳1:輸入端,名稱(chēng)是a */Pin 2 = b;/* 輸出端: 定義 PAL16L8 和 PAL16LD8器件的輸出端。 */Pin 12 = inva; /* 引腳11:輸出端,名稱(chēng)是inva */Pi

4、n 13 = invb;Pin 14 = and; /* 引腳14:輸出端,名稱(chēng)是and,與VHDL不同,and不是關(guān)鍵字,可以作為標(biāo)號(hào)使用 */ Pin 15 = nand;Pin 16 = or;Pin 17 = nor;Pin 18 = xor;Pin 19 = xnor;/* 邏輯實(shí)現(xiàn)部分: 演示如何利用 CUPL 實(shí)現(xiàn)基本門(mén)電路 */inva = !a; /* 反相器 */invb = !b;and = a & b; /* 與門(mén) */nand = !(a & b); /* 與非門(mén) */or = a # b; /* 或門(mén) */xor = a $ b; /* 異或門(mén) */nor = !(

5、a # b) /* 或非門(mén) */xnor = !(a $ b); /* 同或門(mén) */ 通過(guò)上面例子的學(xué)習(xí),我們應(yīng)該對(duì)Cupl語(yǔ)言有了初步的了解。 WinCupl不但可以編譯該文件,生成JED的熔絲文件,還可以對(duì)該文件進(jìn)行波形仿真。在做小規(guī)模的PLD設(shè)計(jì)的時(shí)候,使用GAL系列或者ATF系列的PLD比較方便,也比較便宜。Cupl文件的基本格式在編寫(xiě)Cupl語(yǔ)言源文件需要遵守一定的格式,源文件由頭部說(shuō)明、輸入引腳說(shuō)明、輸出引腳說(shuō)明和邏 輯實(shí)現(xiàn)4部分組成,缺一不可。一、頭部說(shuō)明 頭部說(shuō)明一般包括以下部分:NameWAITGEN ;PartnoP9000183 ; Revision02 ;Date1/1

6、1/89 ;DesignerOsann ;CompanyLogical Devices, Inc. ;AssemblyPC Memory Board ;LocationU106 ;DeviceF155;Formatij ; Name關(guān)鍵字用來(lái)說(shuō)明邏輯文件的文件名,默認(rèn)的擴(kuò)展名是PLD,因此可以不寫(xiě)擴(kuò)展名。 Partno關(guān)鍵字用來(lái)說(shuō)明對(duì)特定的PLD器件對(duì)應(yīng)的某個(gè)公司的部件號(hào)。如果不知道,可以不要這個(gè)部分。 Revision 設(shè)計(jì)公司設(shè)計(jì)該源文件的版本號(hào)。可以不填,可以沒(méi)有 Date 設(shè)計(jì)日期,可以不填,可以沒(méi)有 Designer 設(shè)計(jì)者的名稱(chēng),可以不填,可以沒(méi)有 Company 設(shè)計(jì)者所在公司名

7、稱(chēng),可以不填,可以沒(méi)有 Assembly 本設(shè)計(jì)用于PC機(jī)板卡時(shí)的名稱(chēng),可以沒(méi)有 Location 本設(shè)計(jì)用于PC機(jī)板卡時(shí)所在的位置,可以沒(méi)有 Device 必填字段,用來(lái)選擇本設(shè)計(jì)所用的具體PLD器件型號(hào), Format 用來(lái)指定本文件編譯后產(chǎn)生的燒寫(xiě)芯片文件的種類(lèi)。h表示產(chǎn)生HEX格式的ASCII碼文件,i表示HL格式的文件,j表示產(chǎn)生JEDEC格式的文件。二、引腳說(shuō)明 在PLD源文件中,所用的輸入輸出引腳都必須說(shuō)明后才能使用,因此,可以象下面格式一樣說(shuō)明引腳: PIN pin_n=!var ; PIN是關(guān)鍵字,pin_n是引腳號(hào)碼,var是引腳定義的名字,該名字用在后面的邏輯實(shí)現(xiàn)中。!是

8、可選的,用來(lái)說(shuō)明引腳的極性,如果沒(méi)有!,輸入是什么就是什么,為同相,如果有!,就表示輸入后信號(hào)反相。 下面是一個(gè)實(shí)際的例子: Pin 2 = !A; Pin 3 = !B; Pin 16 = Y; Y = A & B; /* 邏輯實(shí)現(xiàn)部分 */ 當(dāng)然,如果有一系列的引腳需要說(shuō)明,這些引腳又是連續(xù)的,可以用符號(hào)來(lái)說(shuō)明,比如 Pin2.6 = A1.5; 就表示引腳2到6用A1到A5來(lái)表示,比較方便。三、邏輯實(shí)現(xiàn)部分 邏輯實(shí)現(xiàn)部分用來(lái)實(shí)現(xiàn)引腳之間的邏輯關(guān)系。它主要靠一些邏輯操作符來(lái)實(shí)現(xiàn)引腳之間的關(guān)系。這些邏輯關(guān)系包括: 邏輯符號(hào) 例子 關(guān)系 操作優(yōu)先級(jí) !ANOT1 &A & BAND2 #A #

9、 BOR3 $ A $ B XOR 4 其中,!表示非,&表示與,#表示或,$表示異或,異或的操作優(yōu)先級(jí)最低,非的優(yōu)先級(jí)最高。 搞清楚了這些東西,就可以自己實(shí)現(xiàn)最基本的邏輯門(mén)電路了。 下一講我們將說(shuō)明如何使用WinCupl的環(huán)境。如何使用WinCupl軟件環(huán)境WinCupl是ATMEL公司出品的Cupl語(yǔ)言的編譯環(huán)境,用于PLD器件的編程,支持多種器件,包括GAL系列 和ATF系列。一般來(lái)說(shuō),ATF系列的同等級(jí)產(chǎn)品要必GAL的便宜,比如AFT16V8就兼容GAL16V8,可以擦寫(xiě)100次,價(jià)格上也便宜1塊2塊,性能都差不多。 在ATMEL公司的SPLD/CPLD欄目中免費(fèi)下載WinCupl后,

10、可以得到一個(gè)注冊(cè)碼,用這個(gè)碼就可以激活WinCupl了,這個(gè)碼沒(méi)有使用時(shí)間的限制。 WinCupl軟件包實(shí)際包括兩個(gè)部分,一個(gè)是WinCupl,PLD的編譯環(huán)境,一個(gè)是WinSim,相當(dāng)于MAX的波形仿真部分。 接下來(lái)我們學(xué)習(xí)如何使用這個(gè)軟件。一、編譯第一個(gè)源文件 第一次課我們舉了一個(gè)例子,說(shuō)明了Cupl語(yǔ)言的基本結(jié)構(gòu),下面我們做另一個(gè)例子,就是兩輸入端與門(mén)。具體步驟是: 1、啟動(dòng)WinCupl。啟動(dòng)完進(jìn)入主界面后,單擊File菜單的New,從New中單擊Projet,就是新建一個(gè)工程文件(其實(shí)還是PLD文件),在彈出的對(duì)話(huà)框中,可以填您的源文件名字(Name),填MYGATE,其它的東西怎么

11、填請(qǐng)您復(fù)習(xí)第2課的PLD文件頭部文件的說(shuō)明部分。這里有個(gè)特殊的地方,就是器件(Device),系統(tǒng)默認(rèn)的是virtual,就是不針對(duì)任何具體的部件,這里我們改掉,改成g16v8a,這個(gè)關(guān)鍵字兼容ATF16V8。 2、單擊OK后,系統(tǒng)要你輸入你要用的輸入引腳數(shù),因?yàn)槲覀冎挥袃蓚€(gè)輸入端,因此填2,單擊OK按鈕。 3、系統(tǒng)要你輸入要用到的輸出引腳數(shù),填1,單擊OK按鈕。 4、系統(tǒng)要你輸入要使用到的中間節(jié)點(diǎn)數(shù),我們不需要,填0,單擊OK按鈕。這樣系統(tǒng)就建立了一個(gè)PLD文件,文件名就是MYGATE.PLD。系統(tǒng)將該文件顯示出來(lái)了,就象下面這樣:Name MYGATE ;PartNo 00 ;Date 2

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

13、embly None ;Location ;Device g16v8a ;/* * INPUT PINS */PIN 2 = a ; /* */ PIN 3 = b ; /* */ /* * OUTPUT PINS */PIN 12 = Y ; /* */ Y = a & b; 寫(xiě)好后,我們需要編譯該文件。在Run菜單中,單擊Device Dependent Compile,就是基于器件型號(hào)的編譯。如果沒(méi)有出現(xiàn)什么鍵入錯(cuò)誤,都能成功編譯。編譯完成后,我們來(lái)仿真一下看看波形。二、仿真的基本方法 編譯完成后。單擊工具欄圖標(biāo)的從右側(cè)數(shù)第2個(gè),啟動(dòng)WinSim。啟動(dòng)完成后,單擊WinSim菜單File

14、中的New。 1、在彈出的Design Properties對(duì)話(huà)框中,單擊Design File按鈕,選中MYGATE.PLD文件,按“確認(rèn)”按鈕繼續(xù)。在Design Properties對(duì)話(huà)框中,單擊OK按鈕確認(rèn)。 2、接下來(lái)WinSim會(huì)提示是否創(chuàng)建MYGATE.SIM文件并編譯它,單擊“是”繼續(xù)。 3、不管接下來(lái)的提示,在WinSim中Signal(信號(hào))菜單中單擊Add,在彈出的Add Signal對(duì)話(huà)框中不斷單擊OK按鈕將a、b、y三個(gè)信號(hào)加到波形圖中。單擊Done關(guān)閉該對(duì)話(huà)框。 4、在WinSim的File菜單中單擊Save項(xiàng)保存該項(xiàng)目。 5、在黑色的網(wǎng)格的左上方有個(gè)Value,V

15、alue右邊有個(gè)1,在1所在的灰色條上單擊鼠標(biāo)右鍵,在彈出的菜單中的Add Vector上單擊鼠標(biāo)左鍵,在彈出的對(duì)話(huà)框中輸入3,表示增加波形仿真的3段。 6、在a的右側(cè)的波形上單擊鼠標(biāo)右鍵,依次選0,0,1,1,在b的波形上單擊鼠標(biāo)右鍵,依次選0,1,0,1。 7、保存該工程。在Simulator菜單中選擇Simulator開(kāi)始仿真,就可以看到y(tǒng)的波形了。如下圖所示。 本次課我們學(xué)習(xí)了如何利用WinCupl進(jìn)行PLD邏輯設(shè)計(jì)和基本仿真方法。祝大家工作順利,學(xué)習(xí)愉快。實(shí)現(xiàn)一個(gè)4D觸發(fā)器我們?cè)瓉?lái)學(xué)D觸發(fā)器的時(shí)候,如果全部用組合邏輯來(lái)實(shí)現(xiàn),推導(dǎo)出來(lái)的式子會(huì)很長(zhǎng)很長(zhǎng),如果這么傻做的話(huà),會(huì)很麻煩?,F(xiàn)在我

16、們用引腳擴(kuò)展名來(lái)實(shí)現(xiàn)就很方便。 我們以GAL16V8B(在WinCupl中對(duì)應(yīng)的編譯型號(hào)為g16v8a)為例,GAL16V8B一共有20個(gè)引腳。第1引腳是CLK,即時(shí)鐘引腳,第29引腳是輸入引腳,共8個(gè)。第10引腳是地,第11引腳是OE,低電平禁止,高電平允許。第1219是輸出引腳,共8個(gè),第20引腳是電源,一般可接+5V。 現(xiàn)在我們用該器件來(lái)實(shí)現(xiàn)一個(gè)4D觸發(fā)器,即4個(gè)同樣的D觸發(fā)器。 在WinCupl中新建一個(gè)工程,文件內(nèi)容如下:Name DSample ;PartNo 00 ;Date 2006-8-9 ;Revision 01 ;Designer Wu Jian ;Company Tal

17、e ;Assembly None ;Location ;Device g16v8a ;/* * INPUT PINS */PIN 2.5 = A1.4;/* * OUTPUT PINS */PIN 18 = Q1;PIN 17 = Q2;PIN 16 = Q3;PIN 15 = Q4;Q1.D = A1;Q2.D = A2;Q3.D = A3;Q4.D = A4; 很有意思吧。關(guān)鍵是最后的QX.D。這個(gè)“.D”表示把Q1Q4當(dāng)D觸發(fā)器用。A1A4就是這4個(gè)D觸發(fā)器的輸入端,Q1Q4就是D觸發(fā)器的輸出端,正好4個(gè)。有人就要問(wèn)了,時(shí)鐘端呢?不要急,GAL16V8B的第1個(gè)引腳就是時(shí)鐘端,當(dāng)時(shí)鐘端的

18、輸入信號(hào)出現(xiàn)上升沿的時(shí)候就將第25引腳的信號(hào)鎖存到第1815引腳。而11引腳可以當(dāng)OE使能端用,正好一個(gè)D觸發(fā)器。 本文件編譯后,在Proteus軟件中的仿真圖如下所示: 好了,這個(gè)圖大家可以自己去仿真。如果看過(guò)我的文章后對(duì)您有幫助的話(huà),就達(dá)到我的目的了。在Proteus中仿真上面3次課中我們學(xué)會(huì)了Cupl的基本語(yǔ)法和如何利用WinCupl軟件包中兩個(gè)重要的部分WinCupl和WinSim進(jìn)行設(shè)計(jì)與波形仿真。如果我們需要驗(yàn)證PLD器件與其它器件聯(lián)合工作的情況呢?那就需要利用另一個(gè)著名的仿真軟件Proteus軟件自帶PLD庫(kù)進(jìn)行了。 接下來(lái)我們把MYGATE項(xiàng)目在Proteus中進(jìn)行仿真。相信大

19、家對(duì)Proteus已經(jīng)比較熟悉了。我們要做的其實(shí)很簡(jiǎn)單。裝好Proteus后(我用的是Proteus 6.9,其實(shí)6以上就可以了),在元件庫(kù)的PLD/FPGA項(xiàng)目中選擇AM16V8,其實(shí)就是GAL16V8,將其拖到原理圖上,然后拖電阻和開(kāi)關(guān)到原理圖上,再拖個(gè)發(fā)光管到電路上。將其連好,如下圖所示。 在原理圖的AM16V8上,選中它,然后在上面單擊鼠標(biāo)左鍵,在彈出的對(duì)話(huà)框的JEDEC Fuse Map File欄中單擊右側(cè)的瀏覽圖標(biāo),裝入MYGATE.JED文件即可。單擊OK按鈕關(guān)閉該對(duì)話(huà)框。 最后仿真該電路圖。仿真開(kāi)始后,可以通過(guò)撥動(dòng)開(kāi)關(guān),看AM16V8第12腳的輸出結(jié)果,正好是一個(gè)與門(mén)的邏輯。

20、 好了。我們已經(jīng)介紹了PLD器件的編程方法、編程工具的使用和如何進(jìn)行實(shí)際情況的模擬。大家就可以自己設(shè)計(jì)出一些可用的電路了到底有哪些重要的引腳擴(kuò)展名Cupl語(yǔ)言中引腳重要的擴(kuò)展名包括:擴(kuò)展名 等式的某側(cè).AP左邊(L) flip-flop的異步預(yù)置 .ARL flip-flop的異步復(fù)位.APMUXL 多路選擇器的異步預(yù)置.ARMUXL 多路選擇器的異步復(fù)位.BYPL可編程寄存器的旁路.CALComplement array.CELflip-flop的D觸發(fā)器的輸入使能.CKLflip-flop的可編程時(shí)鐘.CKMUXL多路器件的時(shí)鐘.DLflip-flop的D觸發(fā)器的輸入端. DFB右邊(R)

21、D 寄存器回饋路徑選擇.DQRD鎖存器的 Q端 flip-flop擴(kuò)展名 等式的某側(cè).IMUXL多路選擇器的2引腳的選擇端.INTR寄存器宏單元的內(nèi)部回饋路徑.JLJK觸發(fā)器的 J 端 flip-flop.KLJK觸發(fā)器的 K 端 flip-flop.LLD 輸入鎖存器.LEL可編程鎖存器使能.LEMUXL鎖存器使能多路選擇器.OEL可編程輸出使能.OEMUXL三態(tài)門(mén)的使能端.PRL可編程預(yù)置端.RLflip-flop的RS觸發(fā)器R輸入端.SLflip-flop的RS觸發(fā)器S輸入端.SPLflip-flop的異步置位端S.SRLflip-flop的異步復(fù)位端R.TLflip-flop的T觸發(fā)器

22、輸入端 由上面的列表可以知道,這些東西有些我們做小規(guī)模的PLD設(shè)計(jì)的時(shí)候根本用不上。如果是小規(guī)模的pld,上面的某些擴(kuò)展名是不支持的,比如在GAL16V8B設(shè)計(jì)中,LE就不支持。不過(guò),我們能用觸發(fā)器就是一個(gè)很大的進(jìn)步,這樣可以在幾百個(gè)門(mén)邏輯的規(guī)模下設(shè)計(jì)一些市面上買(mǎi)不到的器件。做一個(gè)JK觸發(fā)器在前面的課程中我們學(xué)到了如何做一個(gè)4D觸發(fā)器,也知道了引腳擴(kuò)展名。但是,如果你直接用.J和.K來(lái)申明一個(gè)JK觸發(fā)器,并想用它在gal16V8b中實(shí)現(xiàn)是不可能的。為什么呢?因?yàn)镚AL16V8手冊(cè)中指出,內(nèi)部只有D觸發(fā)器的邏輯,沒(méi)有JK觸發(fā)器的邏輯,想直接借用是不可能的。 可我們需要一個(gè)jk觸發(fā)器怎么辦呢?我們

23、可以查數(shù)字電子技術(shù)一類(lèi)的書(shū),這些書(shū)中有的就告訴了我們?cè)趺从肈觸發(fā)器實(shí)現(xiàn)一個(gè)jk觸發(fā)器,基本邏輯是: Q.D = (J1&!Q)#(!K1&Q); 我們把這個(gè)邏輯用GAL16V8實(shí)現(xiàn)就可以了。如果你看不懂的話(huà),我可以解釋一下。Q就是數(shù)字電子書(shū)上的Qn。!Q就是Qn取反。 我們現(xiàn)在把這個(gè)東西用Cupl語(yǔ)言實(shí)現(xiàn)如下:Name JKSample ;PartNo 00 ;Date 2006-8-10 ;Revision 01 ;Designer Wu Jian ;Company Zhu Zhou AI ;Assembly None ;Location ;Device g16v8a ;/* * INPUT PINS */PIN 2 = J1; /* */ PIN 3 = K1; /* */ /* * OUTPUT PINS */PIN 18 = Q; /* */ Q.D = (J1&!Q)#(!K1&Q); 把這個(gè)文件敲進(jìn)去。如果敲入正確,就能正常編譯。在利用Proteus仿真的時(shí)候,GAL16V8B的第1腳是時(shí)鐘CLK,上升沿有效,第2腳是J腳,置位腳,第3腳是K腳,復(fù)位腳,第18腳是Q輸出端。試試看,這里我們就不需要給圖了,只要你正確連線(xiàn),就能得到正確的輸出,很奇妙吧。 學(xué)過(guò)了本節(jié)課,我們可以知道

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論