




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、武漢理工大學(xué)EDA課程設(shè)計(jì)說(shuō)明書課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級(jí):電子科學(xué)與技術(shù)0803班指導(dǎo)教師: 工作單位: 信息工程學(xué)院 題 目: 巴克碼檢測(cè)器課題要求: (1)學(xué)會(huì)在Quartus環(huán)境中運(yùn)用VHDL語(yǔ)言設(shè)計(jì)方法構(gòu)建具有一定邏輯功能的模塊,并能運(yùn)用圖形設(shè)計(jì)方法完成頂層原理圖的設(shè)計(jì)。 (2)掌握巴克碼檢測(cè)器的主要功能與在CPLD中的實(shí)現(xiàn)方法。 課題內(nèi)容:(1)設(shè)計(jì)一個(gè)七位巴克碼(X1110010)代碼檢測(cè)器,當(dāng)識(shí)別到一組代碼時(shí),輸出一個(gè)高電平脈沖。 (2)運(yùn)用Quartus軟件中的仿真功能對(duì)所設(shè)計(jì)的巴克碼檢測(cè)器的各個(gè)模塊及頂層電路的功能進(jìn)行仿真分析。時(shí)間安排:學(xué)習(xí)VHDL語(yǔ)言的概況 第1
2、天學(xué)習(xí)VHDL語(yǔ)言的基本知識(shí) 第2、3天學(xué)習(xí)VHDL語(yǔ)言的應(yīng)用環(huán)境,調(diào)試命令 第4、5天課程設(shè)計(jì) 第6-9天答辯 第10天 指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄 TOC o 1-3 h z u HYPERLINK l _Toc283367692 摘要 PAGEREF _Toc283367692 h I HYPERLINK l _Toc283367693 Abstract PAGEREF _Toc283367693 h II HYPERLINK l _Toc283367694 1緒論 PAGEREF _Toc283367694 h 1 HYPERLINK l _T
3、oc283367695 2 巴克碼簡(jiǎn)介 PAGEREF _Toc283367695 h 2 HYPERLINK l _Toc283367696 3 Quarters 設(shè)計(jì)軟件介紹 PAGEREF _Toc283367696 h 3 HYPERLINK l _Toc283367697 3.1 VHDL發(fā)展史及特點(diǎn) PAGEREF _Toc283367697 h 3 HYPERLINK l _Toc283367698 3.2 Quarters 應(yīng)用 PAGEREF _Toc283367698 h 4 HYPERLINK l _Toc283367699 4方案選擇及論證 PAGEREF _Toc28
4、3367699 h 6 HYPERLINK l _Toc283367700 5 設(shè)計(jì)原理 PAGEREF _Toc283367700 h 7 HYPERLINK l _Toc283367701 5.1 巴克碼發(fā)生器 PAGEREF _Toc283367701 h 7 HYPERLINK l _Toc283367702 5.2 巴克碼檢測(cè)器 PAGEREF _Toc283367702 h 9 HYPERLINK l _Toc283367703 6 編譯與仿真 PAGEREF _Toc283367703 h 13 HYPERLINK l _Toc283367704 6.1 程序編譯 PAGEREF
5、 _Toc283367704 h 13 HYPERLINK l _Toc283367705 6.2 實(shí)驗(yàn)仿真 PAGEREF _Toc283367705 h 18 HYPERLINK l _Toc283367706 7 小結(jié) PAGEREF _Toc283367706 h 20 HYPERLINK l _Toc283367707 參考文獻(xiàn): PAGEREF _Toc283367707 h 21 PAGE 41摘要設(shè)計(jì)一個(gè)七位巴克碼(X1110010)代碼檢測(cè)器,當(dāng)識(shí)別到一組代碼時(shí),輸出一個(gè)高電平脈沖。AbstractThis course is designed using QUARTERS
6、design a seven buck code (X1110010) code detector, when to recognize a set of code, and the output pulse a high level.Buck code is mainly used for communication system of frame synchronization, characterized by a sharp autocorrelation, facilitate and random digital information to distinguish, easy t
7、o identify, appear the possibility of pseudo synchronous small. Buck code is one kind has the special law of binary code group, it is a non-periodic sequence.Keywords: QUARTERS , buck yards, signal tester, sequence1緒論2 巴克碼簡(jiǎn)介3 Quarters 設(shè)計(jì)軟件介紹3.1 VHDL發(fā)展史及特點(diǎn)VHDL誕生于1982年。隨后各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)
8、計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡(jiǎn)稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語(yǔ)言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。 VHDL的英文全寫是:VHSIC(Very High Speed Integrate
9、d Circuit)Hardware Descriptiong Language.翻譯成中文就是超高速集成電路硬件描述語(yǔ)言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來(lái)設(shè)計(jì)ASIC。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。 VHDL語(yǔ)言特點(diǎn)(1)VHDL語(yǔ)言功能強(qiáng)大、設(shè)計(jì)靈活。VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功
10、能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言雖不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。(2)支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過程中,主要的設(shè)計(jì)文件是用VHDL編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。(3)強(qiáng)大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門
11、級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。(4)獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān)。設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。(5)很強(qiáng)的移植能力。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。(6)易于共享和復(fù)用
12、。VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。(7)VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。(8)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具
13、進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。(9)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。總之,由于VHDL語(yǔ)言有這么多優(yōu)點(diǎn)和特點(diǎn),因此它被廣泛的應(yīng)用在電路系統(tǒng)的設(shè)計(jì)和器件的設(shè)計(jì)仿真中。3.2 Quarters 應(yīng)用Quarters 是Altera公司推出的新一代開發(fā)軟件,適合于大規(guī)模邏輯電路設(shè)計(jì),是Altera公司的第4代可編程邏輯器件集成開發(fā)環(huán)境,提供了從設(shè)計(jì)輸入到器件編程的全部功能,與Max+plus 相比,Quarters 設(shè)計(jì)軟件增加了網(wǎng)絡(luò)編輯功能,提升了調(diào)試能力,解決了潛在的設(shè)計(jì)延遲,
14、同時(shí)其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,受到數(shù)字系統(tǒng)設(shè)計(jì)者的普遍歡迎。Quarters 開發(fā)系統(tǒng)具有以下主要特點(diǎn):Quarters 可以產(chǎn)生并識(shí)別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,為第三方EDA工具提供了方便的接口。Quarters 支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,包括支持基于Internet的協(xié)作設(shè)計(jì),與Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。Quarters 作為一種設(shè)計(jì)環(huán)境,除支持Altera的APEX 20KE,APEX 20KC,APEX,ARM的E
15、xcalibur嵌入式處理器方案,Mercury,FLEX10KE和ACEX1K之外,還支持MAX3000A和MAX7000系列乘積項(xiàng)器件。 Quarters 增加了一個(gè)新的快速適配編譯選項(xiàng),可縮短50%的編譯時(shí)間。快速適配功能保留了最佳性能的設(shè)置,加快了編譯過程,編譯速度更快,對(duì)設(shè)計(jì)性能的影響最小3境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。Quarters 設(shè)計(jì)軟件界面如圖3.1所示。圖3.1 Quarters 設(shè)計(jì)軟件界面4方案選擇及論證方案一:在狀態(tài)連續(xù)變化的數(shù)字系統(tǒng)設(shè)計(jì)中,采用狀態(tài)機(jī)的設(shè)計(jì)思想有利于提
16、高設(shè)計(jì)效率,增加程序的可讀性,減少錯(cuò)誤的發(fā)生幾率。同時(shí),狀態(tài)機(jī)的設(shè)計(jì)方法也是數(shù)字系統(tǒng)中一種常用的設(shè)計(jì)方法,其輸出僅僅是當(dāng)前狀態(tài)值的函數(shù),并且在時(shí)鐘上升沿到來(lái)時(shí)才發(fā)生變化。米立機(jī)的輸出則是當(dāng)前狀態(tài)值、當(dāng)前輸出值和當(dāng)前輸入值的函數(shù)。本實(shí)驗(yàn)要從一串二進(jìn)制碼中檢測(cè)出一個(gè)已預(yù)置的7位二進(jìn)制碼,每增加一位二進(jìn)制相當(dāng)于增加一個(gè)狀態(tài),用7個(gè)狀態(tài)可以實(shí)現(xiàn)。方案二:利用移位寄存器實(shí)現(xiàn)序列檢測(cè):上面檢測(cè)的原理是:逐位檢測(cè),的那個(gè)檢測(cè)到信號(hào)時(shí)則轉(zhuǎn)入下一個(gè)狀態(tài)。這種檢測(cè)的原理清晰,但缺點(diǎn)是當(dāng)檢測(cè)到序列比較長(zhǎng)時(shí)就非常麻煩,而且檢測(cè)的靈活性差。利用移位寄存器能實(shí)現(xiàn)簡(jiǎn)便快速,可移植的序列檢測(cè)器。通過比較可以看出方案一比較容易
17、實(shí)現(xiàn),因此本次課程設(shè)計(jì)我選擇的是方案一。 5 設(shè)計(jì)原理序列檢測(cè)器可用于檢測(cè)一組或多組由二進(jìn)制碼組成的脈沖序列信號(hào),當(dāng)序列檢測(cè)器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測(cè)器中預(yù)先設(shè)置的碼相同,則輸出1,否則輸出0。由于這種檢測(cè)的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測(cè)器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測(cè)中所收到的每一位碼都與預(yù)置數(shù)的對(duì)應(yīng)碼相同。在檢測(cè)過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測(cè)。在本次設(shè)計(jì)中首先要設(shè)計(jì)一個(gè)巴克碼發(fā)生器,然后再設(shè)計(jì)巴克碼檢測(cè)器。5.1 巴克碼發(fā)生器發(fā)生器原理:N位觸發(fā)器構(gòu)成的計(jì)數(shù)器可產(chǎn)生M個(gè)代碼。原理圖:圖5.1巴克碼發(fā)生器原理圖當(dāng)計(jì)數(shù)
18、脈沖不斷進(jìn)入由Q3Q2Q1組成的三位二進(jìn)制異步計(jì)數(shù)器時(shí),3-8譯碼器的8個(gè)輸出經(jīng)反相器后順序輸出高電平。其中五路信號(hào)經(jīng)“或非”后再和其中3路“或”,在Y端便可順序產(chǎn)生11000100代碼序列。代碼序列發(fā)生:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bak1 isport(clk,reset: in std_logic;dout:out std_logic);end bak1;architecture a of bak1 issignal count :std_logic_vec
19、tor(2 downto 0);signal tmp1:std_logic;begindout=tmp1;process(clk,reset)beginif reset=0 thencount0);elsif rising_edge(clk) thencounttmp1tmp1tmp1tmp1tmp1tmp1tmp1tmp1tmp1=0;end case;end if;end process;end a;5.2 巴克碼檢測(cè)器序列檢測(cè)器可用于檢測(cè)一組或多組由二進(jìn)制碼組成的脈沖序列信號(hào),當(dāng)序列檢測(cè)器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測(cè)器中預(yù)先設(shè)置的碼相同,則輸出1,否則輸出0。由于這種檢測(cè)
20、的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測(cè)器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測(cè)中所收到的每一位碼都與預(yù)置數(shù)的對(duì)應(yīng)碼相同。在檢測(cè)過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測(cè)。 圖5.2 巴克碼檢測(cè)器狀態(tài)圖用狀態(tài)機(jī)設(shè)計(jì)的巴克碼檢測(cè)器總設(shè)計(jì)程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity create is port( CLR : in std_logic; CLK_1S : in std_l
21、ogic; SIG_OUT : out std_logic; CODE : in std_logic_vector(6 downto 0) );end entity;architecture behave of create istype states is(st0,st1,st2,st3,st4,st5,st6,st7);signal current_state : states;begin process(CLK_1S,CLR,CODE) begin if CLR = 0 then current_state = st0; SIG_OUT SIG_OUT = CODE(0); curren
22、t_state SIG_OUT = CODE(1); current_state SIG_OUT = CODE(2); current_state SIG_OUT = CODE(3); current_state SIG_OUT = CODE(4); current_state SIG_OUT = CODE(5); current_state SIG_OUT = CODE(6); current_state SIG_OUT = 0; current_state current_state = st0; end case; end if; end process;end behave;本次課程設(shè)
23、計(jì)所用的頻率是由實(shí)驗(yàn)箱pin16提供20M的頻率,但我們實(shí)際中不會(huì)用到那么高的頻率,因此我們需要一個(gè)分頻器將此20M的頻率分頻到我們所需的頻率,分頻器原程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity div is port( CLK_IN : in std_logic; CLK_OUT : buffer std_logic; DIV_TIME : in std_logic_vector(15 downto 0)
24、);end entity;architecture behave of div issignal data1: integer range 0 to 10000000;signal data2: integer range 0 to 10000000;begin process(CLK_IN,DIV_TIME) begin if rising_edge(CLK_IN) then if data1 = DIV_TIME then data1 = 0; if data2 = 1000 then data2 = 0; CLK_OUT = not CLK_OUT; else data2 = data2
25、 + 1; end if; else data1 = data1 + 1; end if; end if; end process;end behave; 6 編譯與仿真6.1 程序編譯按要求安裝好Quarters ,打開已安裝好的軟件并新建一個(gè)工程圖6.1 新建工程完成后選擇芯片,由于本次設(shè)計(jì)要求用到EP1C3T144C8芯片,因此如圖5.2中選擇該芯片。圖6.2 選擇芯片 由于本次設(shè)計(jì)要用到多種模塊,應(yīng)此要考慮元件例化或畫連接圖,為了編程簡(jiǎn)單我們選擇畫連接圖,如圖所示在新建文檔里選擇“Block Diagram/Schematic File”進(jìn)入畫圖界面,如圖6.3所示: 圖6. 3 畫圖
26、界面課程設(shè)計(jì)總程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity design is port( CLK : in std_logic; KEY_CLR : in std_logic; KEY_IN : in std_logic_vector(6 downto 0); BELL : out std_logic; LED : out std_logic; LED_7 : out std_logic_vector(6 d
27、ownto 0) );end entity;architecture behave of design iscomponent div is port( CLK_IN : in std_logic; CLK_OUT : buffer std_logic; DIV_TIME : in std_logic_vector(15 downto 0) );end component;component create is port( CLR : in std_logic; CLK_1S : in std_logic; SIG_OUT : out std_logic; CODE : in std_logi
28、c_vector(6 downto 0) );end component;type states is(st0,st1,st2,st3,st4,st5,st6,st7);signal current_state : states;signal clk_1s : std_logic;signal clk_1k : std_logic;signal code_in : std_logic;signal BELL1 : std_logic;beginprocess(clk_1s,KEY_CLR)begin if KEY_CLR = 0 then current_state = st0; LED =
29、0 ; LED_7 0); BELL1 = 0; else LED if code_in = 1 then current_state = st1; else current_state = st0; end if; LED_7(0)=code_in; BELL1 if code_in = 1 then current_state = st2; else current_state = st0; end if; LED_7(1) if code_in = 1 then current_state = st3; else current_state = st0; end if; LED_7(2)
30、 if code_in = 0 then current_state = st4; else current_state = st3; end if; LED_7(3) if code_in = 0 then current_state = st5; else current_state = st1; end if; LED_7(4) if code_in = 1 then current_state = st6; else current_state = st0; end if; LED_7(5) if code_in = 0 then current_state = st7; else c
31、urrent_state = st2; end if; LED_7(6) current_state = st0; BELL1 current_state = st0; end case; end if; end if;end process;process(BELL1) begin if BELL1 = 1 then BELL = clk_1k; else BELL CLK, CLK_OUT = clk_1s, DIV_TIME = 0010011100010000 );DIV2 : div port map(CLK_IN = CLK, CLK_OUT = clk_1k, DIV_TIME
32、= 0000000000001010 );CREATE1 : create port map(CLR = KEY_CLR, CLK_1S = clk_1s, SIG_OUT = code_in, CODE = KEY_IN ); end behave;6.2 實(shí)驗(yàn)仿真運(yùn)行程序直至調(diào)試到無(wú)錯(cuò)誤后生成實(shí)驗(yàn)總圖如下所示 圖6.4 總原理圖在總體電路圖界面中選擇“new”中的 “vector waveform file”在processing中選擇simulator tool,進(jìn)行仿真圖6.5 新建vector waveform file在編輯好波形輸入文件后,在Process中的simulator
33、tool中選擇仿真類型為功能仿真,并生成仿真網(wǎng)表。如圖所示。 圖 6.6 選擇仿真工具巴克碼發(fā)生器波形仿真器如下所示:圖6.7 巴克碼(01110010代碼)發(fā)生器仿真波形圖巴克碼檢測(cè)器仿真圖如下所示圖6.8 巴克碼檢測(cè)器仿真波形圖用過波形仿真以及在實(shí)驗(yàn)箱上演示可以驗(yàn)證此次設(shè)計(jì)達(dá)到了預(yù)期的要求7 小結(jié)為期近一周的EDA課程設(shè)計(jì)已經(jīng)接近尾聲。通過這次課程設(shè)計(jì)首先對(duì)EDA課程的到了復(fù)習(xí)和應(yīng)用。并且對(duì)所學(xué)的知識(shí)的到了應(yīng)用。使得理論與實(shí)踐相結(jié)合,對(duì)知識(shí)的掌握更佳的熟練。 拿到題目后我首先在網(wǎng)上收索了該題目的相關(guān)知識(shí),并且對(duì)相關(guān)知識(shí)進(jìn)行分析,發(fā)現(xiàn)網(wǎng)上的資料不是很全,于是又到圖書館里借了相關(guān)的資料。并且對(duì)
34、其進(jìn)行了選擇和篩選。之后利用QuartusII9.0進(jìn)行程序的編輯,并且在自己的電腦上進(jìn)行調(diào)試和相關(guān)的波形仿真。編寫程序時(shí)我編寫了兩個(gè)程序,以便在試驗(yàn)箱調(diào)節(jié)時(shí)多一種選擇的余地。然后到試驗(yàn)箱上調(diào)節(jié)。由于有一個(gè)程序的實(shí)驗(yàn)效果不是很明顯,就將這個(gè)程序給舍去了。在進(jìn)行試驗(yàn)調(diào)試之前需要對(duì)一些端口進(jìn)行一些相關(guān)的設(shè)置和注意一些事項(xiàng)。并且對(duì)另外一個(gè)程序做了適當(dāng)?shù)男薷臅r(shí)實(shí)驗(yàn)現(xiàn)象更加的明顯。最初我沒有接時(shí)鐘輸出端口。之后為了觀察現(xiàn)象明顯,最后我接了一個(gè)時(shí)鐘輸出端口以便觀察。這次課程設(shè)計(jì),在調(diào)試時(shí)還是比較的順利的。通過這次課程設(shè)計(jì)對(duì)word也更佳的熟悉。這次課程設(shè)計(jì)業(yè)使我明白了在知識(shí)的領(lǐng)域里我還有很多很多的不足,并
35、且再一次的深深的體會(huì)到理論和實(shí)踐之間還有很到的差別。在以后的學(xué)習(xí)中應(yīng)該多多的注意實(shí)踐知識(shí)的訓(xùn)練和積累。在以后的學(xué)習(xí)生活中要不斷的開拓自己的動(dòng)手能力,不斷的訓(xùn)練自己的動(dòng)手能力。這次課程設(shè)計(jì)讓我深深的明白了自己以后該做什么,該怎么去做。參考文獻(xiàn):4張亦華,延明.北京郵電大學(xué)出版社,2003.5 夏路易.基于EDA的電子技術(shù)課程設(shè)計(jì).電子工藝出版社,2009.6 王金明.數(shù)字系統(tǒng)設(shè)計(jì)Verilog HDL. 電子工藝出版社,2009.本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表姓 名性 別 男專業(yè)、班級(jí)電子科學(xué)與技術(shù)0803課程設(shè)計(jì)題目: 巴克碼檢測(cè)器課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績(jī)?cè)u(píng)定依據(jù):最終評(píng)定成績(jī)(以優(yōu)、良、中、及
36、格、不及格評(píng)定)指導(dǎo)教師簽字: 年 月 日附錄資料:不需要的可以自行刪除C語(yǔ)言編譯器的設(shè)計(jì)與實(shí)現(xiàn) 我們?cè)O(shè)計(jì)的編譯程序涉及到編譯五個(gè)階段中的三個(gè),即詞法分析器、語(yǔ)法分析器和中間代碼生成器。編譯程序的輸出結(jié)果包括詞法分析后的二元式序列、變量名表、狀態(tài)棧分析過程顯示及四元式序列程序,整個(gè)編譯程序分為三部分:(1) 詞法分析部分(2) 語(yǔ)法分析處理及四元式生成部分 (3) 輸出顯示部分一詞法分析器設(shè)計(jì) 由于我們規(guī)定的程序語(yǔ)句中涉及單詞較少,故在詞法分析階段忽略了單詞輸入錯(cuò)誤的檢查,而將編譯程序的重點(diǎn)放在中間代碼生成階段。詞法分析器的功能是輸入源程序,輸出單詞符號(hào)。我們規(guī)定輸出的單詞符號(hào)格式為如下的二元
37、式: (單詞種別,單詞自身的值)#define ACC -2#define syl_if 0#define syl_else 1#define syl_while 2#define syl_begin 3#define syl_end 4#define a 5#define semicolon 6#define e 7#define jinghao 8#define s 9#define L 10#define tempsy 11#define EA 12#define EO 13#define plus 14#define times 15#define becomes 16#define
38、op_and 17#define op_or 18#define op_not 19#define rop 20#define lparent 21#define rparent 22#define ident 23#define intconst 24函數(shù)說(shuō)明 讀取函數(shù) readline( )、readch( )詞法分析包含從源文件讀取字符的操作,但頻繁的讀文件操作會(huì)影響程序執(zhí)行效率,故實(shí)際上是從源程序文件” source.dat ”中讀取一行到輸入緩沖區(qū),而詞法分析過程中每次讀取一個(gè)字符時(shí)則是通過執(zhí)行 readch( )從輸入緩沖區(qū)獲得的;若緩沖區(qū)已被讀空,則再執(zhí)行readline( )從
39、 source.dat 中讀取下一行至輸入緩沖區(qū)。掃描函數(shù) scan( ) 掃描函數(shù) scan( )的功能是濾除多余空格并對(duì)主要單詞進(jìn)行分析處理,將分析得到的二元式存入二元式結(jié)果緩沖區(qū)。變量處理 find( )變量處理中首先把以字母開頭的字母數(shù)字串存到 spelling 數(shù)組中,然后進(jìn)行識(shí)別。識(shí)別過程是先讓它與保留關(guān)鍵字表中的所有關(guān)鍵字進(jìn)行匹配,若獲得成功則說(shuō)明它為保留關(guān)鍵字,即將其內(nèi)碼值寫入二元式結(jié)果緩沖區(qū);否則說(shuō)明其為變量,這時(shí)讓它與變量名表中的變量進(jìn)行匹配( 變量匹配函數(shù) find( ) ),如果成功,則說(shuō)明該變量已存在并在二元式結(jié)果緩沖區(qū)中標(biāo)記為此變量( 值填為該變量在變量名表中的位置
40、),否則將該變量登記到變量名表中,再將這個(gè)新變量存入二元式緩存數(shù)組中。數(shù)字識(shí)別 number( ) 數(shù)字識(shí)別將識(shí)別出的數(shù)字填入二元式結(jié)果緩存數(shù)組。顯示函數(shù) 顯示函數(shù)的功能在屏幕上輸出詞法分析的結(jié)果( 即二元式序列程序),同時(shí)給出二元式個(gè)數(shù)及源程序行數(shù)統(tǒng)計(jì)。二語(yǔ)法分析器設(shè)計(jì) 語(yǔ)法分析器的核心是三張 SLR 分析表以及針對(duì)這三張 SLR 分析表進(jìn)行語(yǔ)義加工的語(yǔ)義動(dòng)作。編譯程序中語(yǔ)法分析處理及四元式生成部分主要是以二元式作為輸入,并通過 SLR 分析表對(duì)語(yǔ)法分析處理過程進(jìn)行控制,使四元式翻譯的工作有條不紊的進(jìn)行,同時(shí)識(shí)別語(yǔ)法分析中的語(yǔ)法錯(cuò)誤。在處理 if 和 while 語(yǔ)句時(shí),需要進(jìn)行真值或假值的
41、拉鏈和返填工作,以便轉(zhuǎn)移目標(biāo)的正確填入。1. 控制語(yǔ)句的 SLR 分析表1 設(shè)計(jì)過程如下: 將擴(kuò)展文法GS S1)S if e S else S2)S while e S3)S L 4)S a;5)L S6)L SL用_CLOSURE方法構(gòu)造LR(0)項(xiàng)目規(guī)范簇為:I0: S SS if e S else SS while e S S L S a ;I1: S SI2: S ife S else SI3: S while e SI4: S L L S L SL S if e S else SS while e S S L S a ; I5: S a; I6: S if e S else S S
42、 if e S else SS while e S S L S a ; I7: S while e S S if e S else SS while e S S L S a ; I8: S L I9: L S L SL L SL L S S if e S else SS while e S S L S a ; I10: S a ; I11: S if e S else SI12: S while e S I13: S L I14: S SL I15: S if e S else S S if e S else SS while e S S L S a ; I16: S if e S else
43、S 構(gòu)造文法G中非終結(jié)符的FOLLOW集如下:FOLLOW(S) = # S if e S else S得FOLLOW(S) = else S L 得FOLLOW(L) = 3) S S 得FOLLOW(S) = else , # L S 因?yàn)镕IRST(S) = ,所以FOLLOW(S) = else , #, 在()項(xiàng)目規(guī)范簇中,只有9有“移進(jìn)歸約”沖突,L SL SL因?yàn)镕OLLOW(L) FIRST(L) = 所以可以用方法解決以上沖突,最后我們得到的分析表如下:ACTIONGOTO ifElsewhilea;e#SL0S2S3S4S511ACC2S63S74S2S3S4S5985S1
44、06S2S3S4S5117S2S3S4S5128S139S2S3S4R5S591410R4R4R4111512R2R2R213R3R3R314R615S2S3S4S51616R1R1R1static int action2011=/* 0 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 1, -1,/* 1 */ -1, -1, -1, -1, -1, -1, -1, -1,ACC, -1, -1,/* 2 */ -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1,/* 3 */ -1, -1, -1, -1, -1, -1, -1, 7,
45、 -1, -1, -1,/* 4 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 9, 8,/* 5 */ -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,/* 6 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 11, -1,/* 7 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 12, -1,/* 8 */ -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1,/* 9 */ 2, -1, 3, 4,105, 5, -1, -1, -1, 9, 14,/
46、* 10*/ -1,104, -1, -1,104, -1, -1, -1,104, -1, -1,/* 11*/ -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 12*/ -1,102, -1, -1,102, -1, -1, -1,102, -1, -1,/* 13*/ -1,103, -1, -1,103, -1, -1, -1,103, -1, -1,/* 14*/ -1, -1, -1, -1,106, -1, -1, -1, -1, -1, -1,/* 15*/ 2, -1, 3, 4, -1, 5, -1, -1, -1, 16, -1
47、,/* 16*/ -1,101, -1, -1,101, -1, -1, -1,101, -1, -1;其中,前 9 列為 action 值,后 2 列為 goto 值;016 表示 17 個(gè)移進(jìn)狀態(tài)( 即 Si);-1表示出錯(cuò);ACC 表示分析成功;而 100106 對(duì)應(yīng) 7 個(gè)歸約產(chǎn)生式:S SS if e S else SS while e SS L S a;L SL SL2. 算術(shù)表達(dá)式的 LR 分析表 2 設(shè)計(jì)如下:S EE E+EE E*EE (E)E i (過程略)ACTIONGOTOI+*()#E0S3S211S4S5ACC2S3S263R4R4R4R44S3S275S3S28
48、6S4S5S97R1R5R1R18R2R2R2R29R3R3R3R3static int action1107=/* 0 */ 3, -1, -1, 2, -1, -1, 1,/* 1 */ -1, 4, 5, -1, -1,ACC, -1,/* 2 */ 3, -1, -1, 2, -1, -1, 6,/* 3 */ -1,104,104, -1,104,104, -1,/* 4 */ 3, -1, -1, 2, -1, -1, 7,/* 5 */ 3, -1, -1, 2, -1, -1, 8,/* 6 */ -1, 4, 5, -1, 9, -1, -1,/* 7 */ -1,101,
49、5, -1,101,101, -1,/* 8 */ -1,102,102, -1,102,102, -1,/* 9 */ -1,103,103, -1,103,103, -1;3.布爾表達(dá)式的 SLR 分析表3 設(shè)計(jì)如下:(過程略)S BB iB i rop iB ( B )B ! BA B &B ABO B |B OBACTIONGOTOiRop()!&|#BAO0S1S4S513781S2R1R1R1R12S33R2R2R2R24S1S4S511785S1S4S56786R4S9S10R47S1S4S514788S1S4S515789R5R5R510R7R7R711S12S9S1012R3
50、R3R3R313S9S10ACC14R6S9S10R615R8S9S10R8static int action21611=/* 0 */ 1, -1, 4, -1, 5, -1, -1, -1, 13, 7, 8,/* 1 */ 1, 2, -1,101, -1,101,101,101, -1, -1, -1,/* 2 */ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 3 */ -1, -1, -1,102, -1,102,102,102, -1, -1, -1,/* 4 */ 1, -1, 4, -1, 5, -1, -1, -1, 11, 7,
51、 8,/* 5 */ 1, -1, 4, -1, 5, -1, -1, -1, 6, 7, 8,/* 6 */ -1, -1, -1,104, -1, 9, 10,104, -1, -1, -1,/* 7 */ 1, -1, 4, -1, 5, -1, -1, -1, 14, 7, 8,/* 8 */ 1, -1, 4, -1, 5, -1, -1, -1, 15, 7, 8,/* 9 */ 105, -1,105, -1,105, -1, -1, -1, -1, -1, -1,/*10 */ 107, -1,107, -1,107, -1, -1, -1, -1, -1, -1,/*11 *
52、/ -1, -1, -1, 12, -1, 9, 10, -1, -1, -1, -1,/*12 */ -1, -1, -1,103, -1,103,103,103, -1, -1, -1,/*13 */ -1, -1, -1, -1, -1, 9, 10,ACC, -1, -1, -1,/*14 */ -1, -1, -1,106, -1, 9, 10,106, -1, -1, -1,/*15 */ -1, -1, -1,108, -1, 9, 10,108, -1, -1, -1;LR 分析表控制語(yǔ)義加工的實(shí)現(xiàn):當(dāng)掃描 LR 分析表的當(dāng)前狀態(tài)為歸約狀態(tài)時(shí),則在調(diào)用與該狀態(tài)對(duì)應(yīng)的產(chǎn)生式進(jìn)行歸
53、約的同時(shí),調(diào)用相應(yīng)的語(yǔ)義子程序進(jìn)行有關(guān)的翻譯工作?,F(xiàn)在對(duì) LR 分析器的分析棧加以擴(kuò)充,使得每個(gè)文法符號(hào)之后都跟著它的語(yǔ)義值。為了清晰起見,我們把這個(gè)棧的每一項(xiàng)看成由三部分組成:狀態(tài) state ,文法符號(hào) syl 和語(yǔ)義值 val。編譯程序?qū)崿F(xiàn)算術(shù)表達(dá)式、布爾表達(dá)式及程序語(yǔ)句的語(yǔ)義加工時(shí),都是按這種狀態(tài)棧加工方式進(jìn)行的。例如:( 5 + 3 ) * 6的分析過程序號(hào)STATEValsylinput10-#( 5 + 3 ) * 6 #202-#(5 + 3 ) * 6 #3023#(5+ 3 ) * 6 #4026-5#(E+ 3 ) * 6 #50264-5-#(E+3 ) * 6 #60
54、2643-5-#(E+3 ) * 6 #702647-5-3#(E+E) * 6 #8026-8#(E) * 6 #90269-8-#(E)* 6 #1001-8#E* 6 #11015-8-#E* 6 #120153-8-#E*6#130158-8-6#E*E#1401-48#E#15ACC在分析過程中,第(3)步操作后的狀態(tài)棧為 023,根據(jù)棧頂狀態(tài)“ 3”和現(xiàn)行輸入符號(hào)“ +”( input 欄字符串的第一個(gè)字符)查分析表 ACTION3,+=R4,即按第(4)個(gè)產(chǎn)生式 En 來(lái)進(jìn)行歸約;由于產(chǎn)生式右部?jī)H含一項(xiàng),故去掉狀態(tài)棧棧頂“3”;此時(shí) 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀
55、態(tài) s:GOTO2,E=6,即將狀態(tài) 6 和文法符號(hào) E 壓棧,最后得到第( 4)步的狀態(tài)。第( 7)步操作后也是如此,當(dāng)前狀態(tài)棧為 02647,根據(jù)棧頂狀態(tài) 7 和現(xiàn)行輸入符號(hào)“ )”查分析表 ACTION7,)=R1,即按第(1)個(gè)產(chǎn)生式 EE1+E2進(jìn)行歸約;由于產(chǎn)生式右部有三項(xiàng),故去掉狀態(tài)棧棧頂?shù)?647 三項(xiàng);此時(shí) 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀態(tài) s:GOTO2,E=6,即將狀態(tài) 6 和文法符號(hào) E 壓棧,最后得到第(8)步的狀態(tài)。三中間代碼生成器設(shè)計(jì):布爾表達(dá)式 布爾表達(dá)式在程序語(yǔ)言中有兩個(gè)基本作用:一是用作控制語(yǔ)句( 如 if -else 或 while語(yǔ)句)的
56、條件式;二是用于邏輯演算,計(jì)算邏輯值。布爾表達(dá)式是由布爾算符( &、| 、!)作用于布爾變量( 或常數(shù))或關(guān)系表達(dá)式而形成的。關(guān)系表達(dá)式的形式是 E1 rop E2,其中 rop 是關(guān)系符( 如或),E1和 E2是算術(shù)式。在這里,我們只考慮前面給定文法所產(chǎn)生的布爾表達(dá)式:BB &B | B | B | ! B | (B) | i rop i | i遵照我們的約定,布爾算符的優(yōu)先順序( 從高到低)為:!、&、|,并假定&和|都服從左結(jié)合規(guī)則。所有關(guān)系符的優(yōu)先級(jí)都是相同的,而且高于任何布爾算符,低于任何算術(shù)算符,關(guān)系算符不得結(jié)合。表達(dá)式的真、假出口的確定:考慮表達(dá)式 B1 | B2 ,若 B1為真
57、,則立即知道 B 也為真;因此,B1的真出口也就是整個(gè) B 的真出口。若 B1?為假,則 B2必須被計(jì)值,B2的第一個(gè)四元式就是 B1的假出口。當(dāng)然,B2的真、假出口也就是整個(gè) B的真、假出口。類似的考慮適用于對(duì) B1 & B2的翻譯,我們將 B1 | B2和 B1 & B2 的翻譯用下圖表示,在自下而上的分析過程中,一個(gè)布爾式的真假出口往往不能在產(chǎn)生四元式的同時(shí)就填上。我們只好把這種未完成的四元式的地址( 編號(hào))作為 B 的語(yǔ)義值暫存起來(lái),待到整個(gè)表達(dá)式的四元式產(chǎn)生完畢之后再來(lái)回填這個(gè)未填入的轉(zhuǎn)移目標(biāo)。條件語(yǔ)句對(duì)條件語(yǔ)句 if e S1 else S2 中的布爾表達(dá)式 e,其作用僅在于控制對(duì)
58、 S1和 S2的選擇。因此,作為轉(zhuǎn)移條件的布爾式e,我們可以賦予它兩種“ 出口”:一是“ 真”出T口,出向 S1;一是“ 假”出口,出向 S2。于是,e的代碼F條件語(yǔ)句可以翻譯成如圖的一般形式。非終結(jié)符 e 具有兩項(xiàng)語(yǔ)義值 e _TC 和e_FC,它們分別指出了尚待回填真、S2的代碼假出口的四元式串。e 的“ 真”出口只有在往回掃描到if時(shí)才能知道,而它圖 3-2 條件語(yǔ)句的代碼結(jié)構(gòu) 的“ 假”出口則需到處理過 S1并且到達(dá) else 才能明確。這就是說(shuō),必須把 e_FC 的值傳下去,以便到達(dá)相應(yīng)的 else時(shí)才進(jìn)行回填。另外,當(dāng) S1語(yǔ)句執(zhí)行完時(shí)意味著整個(gè) if-else 語(yǔ)句也已執(zhí)行完畢;
59、因此,在 S1的編碼之后應(yīng)產(chǎn)生一條無(wú)條件轉(zhuǎn)移指令。這條轉(zhuǎn)移指令將導(dǎo)致程序控制離開整個(gè) if-else 語(yǔ)句。但是,在完成 S2的翻譯之前,這條無(wú)條件轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)是不知道的。甚至,在翻譯完 S2之后,這條轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)仍無(wú)法確定。這種情形是由于語(yǔ)句的嵌套性所引起的。例如下面的語(yǔ)句:if e1 if e2 S1 else S2 else S3 在 S1的代碼之后的那條無(wú)條件轉(zhuǎn)移指令不僅應(yīng)跨越 S2而且應(yīng)跨越 S3。這也就是說(shuō),轉(zhuǎn)移目標(biāo)的確定和語(yǔ)句所處的環(huán)境密切相關(guān)。條件循環(huán)語(yǔ)句條件循環(huán)語(yǔ)句 while e S 通常被翻譯成圖的代碼結(jié)構(gòu)。布爾式 e 的“ 真”出口出向 S 代碼段的第一個(gè)四
60、元式。緊接 S 代碼段之后應(yīng)產(chǎn)生一條轉(zhuǎn)向測(cè)試 e 的無(wú)條件轉(zhuǎn)移指令。e 的“ 假”出口將導(dǎo)致程序控制離開整個(gè) while 語(yǔ)句。e 的“ 假”出口目標(biāo)即使在整個(gè) while 語(yǔ)句翻譯完之后也未必明確。例如: if e1 while e2 S1 else S2這種情況仍是由于語(yǔ)句的嵌套性引起的。所以,我們只好把它作為語(yǔ)句的語(yǔ)義值 SCHAIN 暫留下來(lái),以便在處理外層語(yǔ)句時(shí)再伺機(jī)回填。語(yǔ)法翻譯實(shí)現(xiàn)方法 將上述語(yǔ)法翻譯付諸實(shí)現(xiàn)過程中,我們僅保留了算術(shù)表達(dá)式和布爾表達(dá)式翻譯的文法和語(yǔ)義動(dòng)作;面對(duì)程序語(yǔ)句的翻譯,由于改造后含有較多的非終結(jié)符且語(yǔ)義動(dòng)作又相對(duì)簡(jiǎn)單,故仍恢復(fù)為改造之前的程序語(yǔ)句文法。由于總
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣公雞廣告合同范本
- 中醫(yī)門診合同范本
- 2025中國(guó)冶金地質(zhì)總局所屬在京單位高校畢業(yè)生招聘23人筆試參考題庫(kù)附帶答案詳解
- 修車廠勞務(wù)合同范本
- 個(gè)體服裝購(gòu)銷合同范本6
- 產(chǎn)品合伙合同范本
- 代購(gòu)分期購(gòu)車合同范本
- Starter Unit 3 Section B project 教學(xué)設(shè)計(jì)- 2024-2025學(xué)年人教版七年級(jí)英語(yǔ)上冊(cè)
- 企業(yè)食堂用工合同范本
- 勞務(wù)搬家合同范本
- 政府審計(jì) 課件 第二章 政府審計(jì)組織與審計(jì)法律
- 2025年云南省昆明國(guó)家高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)招聘合同聘用制專業(yè)技術(shù)人員47人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 1.1青春的邀約 教學(xué)課件 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)(統(tǒng)編版2024)
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2024年01月廣州期貨交易所2024年招考筆試歷年參考題庫(kù)附帶答案詳解
- 中小學(xué)教師家訪記錄表內(nèi)容(18張)8
- 2024員工質(zhì)量意識(shí)培訓(xùn)
- 《冠心病》課件(完整版)
- 2024年聊城職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 第五章:毒物泄漏及擴(kuò)散模型-第四次
- 接收證明-轉(zhuǎn)學(xué)證明2頁(yè)
評(píng)論
0/150
提交評(píng)論