專(zhuān)用集成電路實(shí)驗(yàn)報(bào)告
1305 0Z 01
1305 0 242 37 7
劉德文
實(shí)驗(yàn)一
開(kāi)發(fā)平臺(tái)軟件安裝與認(rèn)知實(shí)驗(yàn)
實(shí)驗(yàn)內(nèi)容 1 1 、
本實(shí)驗(yàn)以三線八線譯碼器 (L S 741 38) ) 為例, ,在 在 Xilinx I S E 9 、2 2 軟件平臺(tái)上完成設(shè)計(jì)電路得 L VHDL 文本輸入、語(yǔ)法檢查、編譯、仿真、管腳分配與編程下載等操作。下載芯片選擇 Xil in n x 公司得 Coo lR unn e r II I 系列 XC2 C 25 6- - 7P P Q8 208 作為目標(biāo)仿真芯片、
2、
用1中所設(shè)計(jì)得得三線八線譯碼器 (LS 74 4 1 38) 生成一個(gè) LS7 48 138 元件, ,在 在 X X i linx IS E 9。2 2 軟件原理圖設(shè)計(jì)平臺(tái)上完成 8 LS74138 元件得調(diào)用, , 用原理圖得方法設(shè)計(jì)三線八線譯碼器 (LS74138), 實(shí)現(xiàn)編譯, , 仿真, , 管腳分配與編程下載等操作。
源程序:
library IEEE; use IEEE。STD_LOGIC_1164.ALL; use IEEE。STD_LOGIC_ARITH。ALL; use IEEE。STD_LOGIC_UNSIGNED、ALL; -—
Unment the following lines to use the declarat(yī)ions that(yī) are --
provided for instantiating Xilinx primitive ponents、 --library UNISIM; --use UNISIM.Vponents。all; entity ls74138 is
Port ( g1 : in std_logic;
g2 : in std_logic;
inp : in std_logic_vector(2 downto 0);
y : out std_logic_vector(7 downto 0));
end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin
if((g1 and g2)='1’) then
si pni esac?
when ”000"=>y<="00000001";
;”01000000"=〈y〉=”100" nehw?
when ”010"=>y<=”00000100”;
;"00010000”=<y>=”110” nehw?
;”00001000”=〈y>="001" nehw?
;”00000100”=〈y>=”101" nehw?
when "110”=>y<="01000000";
;"00000001"=<y>="111" nehw?
;""=<y>=srehto nehw? ?
end case;
else
;""=<y??
end if; end process; end Behavioral; 波形文件: :
生成元器件及連接電路
思考: :
有程序可以瞧出, 定義了三個(gè)輸入端, 一個(gè)輸出端、g1,g2 為使能輸入端, 當(dāng)全為一時(shí), 開(kāi)始執(zhí)行寬度為三得輸入in p, 并聽(tīng)過(guò)程序?qū)崿F(xiàn)三八譯碼器得功能、通過(guò)實(shí)驗(yàn), 分別用了原理圖與vhdl 語(yǔ)言?xún)煞N方式進(jìn)行調(diào)試。兩種方法各有優(yōu)缺點(diǎn)。對(duì)于原理圖而言, 可以清晰直觀得瞧出電路各部分得構(gòu)造, 但卻只能在原有得基礎(chǔ)上進(jìn)行鏈接而無(wú)法隨意修改元器件功能; vhdl語(yǔ)言則可以按照實(shí)際得需求進(jìn)行編寫(xiě)程序, 從而可以實(shí)現(xiàn)開(kāi)發(fā)者想要實(shí)現(xiàn)得功能。
實(shí)驗(yàn)二
組合邏輯電路得 L VHDL 語(yǔ)言實(shí)現(xiàn)
實(shí)驗(yàn)內(nèi)容: 1.用 用 V V HL DL 語(yǔ)言實(shí)現(xiàn)優(yōu)先編碼器得設(shè)計(jì)并實(shí)現(xiàn)功能仿真
2. 用VH H DL L 語(yǔ)言實(shí)現(xiàn)四選一選擇器得設(shè)計(jì)并實(shí)現(xiàn)功能仿真。
1 、優(yōu)先編碼器源程序 LIBRARY IEEE; USE IEEE。STD_LOGIC_1164。ALL; ENTITY priorityencoder IS
PORT (input:IN STD_LOGIC_VECTO(shè)R (7 DOWNTO(shè) 0);
y:OUT STD_LOGIC_VECTOR (2 DOWNTO 0)); END priorityencoder; ARCHITECTURE rtl OF priorityencoder IS BEGIN
PROCESS (input)
BEGIN
IF(input(0)=’0") THEN
y<="111";
ELSIF(input(1)=’0") THEN
y<="110";
ELSIF(input(2)=’0") THEN
y<=”101”;
ELSIF(input(3)=’0") THEN
y<="100”;
ELSIF(input(4)='0") THEN
y〈="011";
ELSIF(input(5)=’0’) THEN
y<=”010";
ELSIF(input(6)='0’) THEN
y〈=”001”;
ELSE
y〈="000";
END IF;
END PROCESS;
END rtl; 波形圖
原理圖:
2. 四選一選擇器源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164、ALL; ENTITY mux4 IS
PORT (input:IN STD_LOGIC_VECTOR (3 DOWNTO 0);
a,b:IN STD_LOGIC;
y:OUT STD_LOGIC); END mux4; ARCHITECTURE rt1 OF mux4 IS SIGNAL se1:STD_LOGIC_VECTOR (1 DOWNTO 0); BEGIN
se1〈=b&a;
PROCESS (input,se1)
BEGIN
IF(se1="00”)THEN
y<=input(0);
ELSIF(se1=”01”)THEN
y〈=input(1);
ELSIF(se1="10")THEN
y〈=input(2);
ELSE
y〈=input(3);
END IF;
END PROCESS; END rt1; 波形圖
原理圖
思考:
1. 優(yōu)先編碼器: 通過(guò)程序定義了一個(gè)八位得輸入端與一個(gè)三位得輸入端。首先就是通過(guò)八位得
輸入端得最低 位開(kāi)始判斷,是 如果就是 0, 則輸出為:111;是 如果就是 1, 則判斷第
二位, 以此類(lèi)推, 直到最后一位, 如果都不滿(mǎn)足, 則輸出:00 0。
2 、四選一選擇器: 一共有三個(gè)輸入, 其中一個(gè)就是寬度為四得可供選擇得輸入端, 將一個(gè)四位給 寬度得二進(jìn)制碼賦值給 input 端, 通過(guò) a 與 與 b 得輸入選擇in put 得輸出。如ab 為 為 00 時(shí),則輸出為:inpu t(0), 以此類(lèi)推、 實(shí)驗(yàn)三
時(shí)序邏輯電路得 L VHDL 語(yǔ)言實(shí)驗(yàn)
實(shí)驗(yàn)內(nèi)容:( 3選 1) (一)
、 設(shè)計(jì)一個(gè) 0 60 進(jìn)制得計(jì)數(shù)器
(二)
設(shè)計(jì)一帶使能得同步復(fù)位清零得遞增 8 8 位二進(jìn)制計(jì)數(shù)器
(三)
設(shè)計(jì) 一帶使能得異步清零復(fù)位得遞增 8 8 位二進(jìn)制計(jì)數(shù)器
六十進(jìn)制( 異步清零) 源程序:
library ieee(cuò); use ieee。std_logic_1164。all; use ieee、std_logic_unsigned.all; entity ycounter is
port(clk,clear,enable:in std_logic;
--ld:in std_logic;
—-d:in std_logic_vector(7 downto 0);
qk:out std_logic_vector(7 downto 0)); end ycounter; architecture a_ycounter of ycounter is
begin
PROCESS (clk)
VARIABLE cnt :std_logic_vector(7 downto 0);
BEGIN
IF (clk"EVENT AND clk = "1') THEN
IF(clear = "0") THEN
cnt := ”00000000";
--ELSE
—-IF(ld = ’0’) THEN
-- cnt := d;
ELSE
IF(enable = ’1’) THEN
cnt := cnt + "00000001";
if(cnt=”00111100")then
cnt := "00000000";
end if;
END IF;
-—END IF;
END IF;
END IF;
qk 〈= cnt;
END PROCESS; end a_ycounter; 波形圖:
六十進(jìn)制( 同步置數(shù)) 源程序: library ieee(cuò); use iee(cuò)e。std_logic_1164.all; use ieee.std_logic_unsigned、all; entity ycounter is
port(clk,clear,enable:in std_logic;
ld:in std_logic;
d:in std_logic_vector(7 downto 0);
qk:out std_logic_vector(7 downto 0)); end ycounter; architecture a_ycounter of ycounter is begin
PROCESS (clk)
VARIABLE cnt :std_logic_vector(7 downto 0);
BEGIN
IF (clk’EVENT AND clk = "1’) THEN
IF(clear = '0’) THEN
cnt := ”00000000";
ELSE
IF(ld = ’0') THEN
cnt := d;
ELSE
IF(enable = "1’) THEN
cnt := cnt + ”00000001”;
if(cnt=”00111011”)then
Ld :=1;
end if;
END IF;
END IF;
END IF;
END IF;
qk <= cnt;
END PROCESS; end a_ycounter; 波形圖:
思考: 六十進(jìn)制計(jì)數(shù)器得實(shí)現(xiàn),1) 異步清零程序得實(shí)現(xiàn): 通過(guò)判斷最后一個(gè)狀態(tài), 因?yàn)樵撚?jì)數(shù)器位六十進(jìn)制, 所以最后一個(gè)狀態(tài)為 5 9, 用二進(jìn)制碼表示為:"0 0111011” ”, 即當(dāng)計(jì)數(shù)器得狀態(tài)為六十,即"0 011 1100 "狀態(tài)時(shí), 計(jì)數(shù)器清零, 輸出00000 000 。2) 同步置數(shù)程序得實(shí)現(xiàn): 當(dāng)計(jì)數(shù)器達(dá)到狀 態(tài), 當(dāng)計(jì)數(shù)器達(dá)到狀態(tài)”00111011" 時(shí),ld 被賦值為0, 執(zhí)行置數(shù)功能, 將d得值賦值給
y, 計(jì)數(shù)器從零開(kāi)始計(jì)數(shù)、
實(shí)驗(yàn)四
V V HDL L 層次化設(shè)計(jì)方法實(shí)驗(yàn)
實(shí)驗(yàn)內(nèi)容:
設(shè)計(jì)一個(gè) 8 8 位移位寄存器。各個(gè) D D 觸發(fā)器模塊采用 V V HL DL 語(yǔ)言編寫(xiě), , 分別用原理圖、VHD L語(yǔ)言元件例化語(yǔ)句與生成語(yǔ)句得方法實(shí)現(xiàn) 8 8 位移位寄存器得設(shè)計(jì)。
D 觸發(fā)器源程序: library IEEE; use IEEE、STD_LOGIC_1164。ALL; use IEEE。STD_LOGIC_ARITH、ALL; use IEEE、STD_LOGIC_UNSIGNED、ALL; —-
Unment the following lines to use the declarations that(yī) are -—
provided for instantiating Xilinx primitive components、 --library UNISIM; --use UNISIM.VComponents。all; entity Dchu is
Port ( CLK : in
STD_LOGIC;
D : in
STD_LOGIC;
Q : out
STD_LOGIC;
CLEAR : in
STD_LOGIC;
Q_N : out
STD_LOGIC); end Dchu; ARCHITECTURE BEH OF Dchu IS
;CIGOL_DTS:1Q LANGIS?
BEGIN
)1Q,KLC,RAELC( SSECORP?
NIGEB?
IF CLEAR="0’
THEN Q1〈=’0';
ELSIF CLK’EVENT AND CLK=’1' ?;D=〈1Q NEHT?
END IF;
;SSECORP DNE? ? Q〈=Q1;
;1Q ton=〈N_Q??
;HEB DNE?波形圖: D 觸發(fā)器:
八位移位寄存器:
八位移位寄存器原理圖:
元件例化: library IEEE; use IEEE.STD_LOGIC_1164。ALL; use IEEE.STD_LOGIC_ARITH、ALL; use IEEE、STD_LO(píng)GIC_UNSIGNED.ALL; --
Uncomment the following lines to use the declarations that are --
provided for instantiating Xilinx primitive components. -—library UNISIM; --use UNISIM.Vponents。all; entity shift_reg_8_com is
Port ( a,clk,rst : in
STD_LOGIC;
b: out
STD_LOGIC); end shift_reg_8_com; ARCHITECTURE BEH OF shift_reg_8_ IS
1ffd tnenop?Port ( d,clk,rst : in
STD_LOGIC;
q: out
STD_LOGIC); End ponent; Signal q:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN
q(0)<=a; d0:dff1 PORT MAP(q(0),clk,rst,q(1)); d1:dff1 PORT MAP(q(1),clk,rst,q(2)); d2:dff1 PORT MAP(q(2),clk,rst,q(3)); d3:dff1 PORT MAP(q(3),clk,rst,q(4)); d4:dff1 PORT MAP(q(4),clk,rst,q(5)); d5:dff1 PORT MAP(q(5),clk,rst,q(6)); d6:dff1 PORT MAP(q(6),clk,rst,q(7)); d7:dff1 PORT MAP(q(7),clk,rst,q(8)); b<=q(4); End str; 生成語(yǔ)句: library IEEE; use IEEE。STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LO(píng)GIC_UNSIGNED。ALL; -—
Unment the following lines to use the declarations that are —-
provided for instantiating Xilinx primitive components、 ——library UNISIM; ——use UNISIM。VComponents、all;
entity shift_reg_8_com is
Port ( a,clk,rst : in
STD_LOGIC;
b: out
STD_LOGIC); end shift_reg_8_com; ARCHITECTURE BEH OF shift_reg_8_ IS
1ffd tnenopmoC?Port ( d,clk,rst : in
STD_LOGIC;
q: out
STD_LOGIC); End component; Signal q:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN
;a=<)0(q?g1: FOR I IN 0 TO 7 GENERATE dx:dff1 PORT MAP(q(i),clk,rst,q(i+1)); End generat(yī)e g1; b〈=q(4); End str; 實(shí)驗(yàn)結(jié)果( 仿真結(jié)果) 與分析
元件例化語(yǔ)句由兩部分組成, 元件說(shuō)明語(yǔ)句與元件例化語(yǔ)句。首先要設(shè)計(jì)被上層電路調(diào)用得電路塊,即 即 D 觸發(fā)器模塊, 八位移位寄存器就就是通過(guò)程序調(diào)用八個(gè) 個(gè) D 觸發(fā)器, 每個(gè)D觸發(fā)器都相當(dāng)于一個(gè)模塊、生成語(yǔ)句就是將已設(shè)計(jì)好得D觸發(fā)器得邏輯語(yǔ)句進(jìn)行復(fù)制, 從而生成一組結(jié)構(gòu)上完全相同得設(shè)計(jì)單元得電路結(jié)構(gòu)。從上面得兩個(gè)程序可以瞧出, 當(dāng)所需要得組件比較少時(shí), 兩種語(yǔ)句得大小差不多, 但當(dāng)所需要得組件比較多時(shí), 生成語(yǔ)句得執(zhí)行效率明顯得要變高, 而且程序所占內(nèi)存明顯減少。
推薦訪問(wèn): 實(shí)驗(yàn) 報(bào)告 VHDL同志們:今天這個(gè)大會(huì),是市委全面落實(shí)黨要管黨、從嚴(yán)治黨要求的一項(xiàng)重大舉措,也是對(duì)縣市區(qū)委書(shū)記履行基層黨建工作第一責(zé)任人情況的一次集中檢閱,同時(shí)是對(duì)全市基層黨建工作的一次再部署、再落實(shí)的會(huì)議。前面,**
***年,我認(rèn)真履行領(lǐng)班子、帶隊(duì)伍、抓黨員、保穩(wěn)定的基層黨建工作思路,以學(xué)習(xí)貫徹習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想和黨的十九大歷次全會(huì)精神為主線,以市局基層黨建工作考核細(xì)則為落腳點(diǎn),落實(shí)全面從嚴(yán)治黨主體
根據(jù)會(huì)議安排,現(xiàn)將2022年履行抓基層黨建工作職責(zé)情況報(bào)告如下:一、履職工作特色和亮點(diǎn)1 突出政治建設(shè),著力在思想認(rèn)識(shí)上提高。牢固樹(shù)立抓黨建就是抓政績(jī)的理念,以“黨建工作抓引領(lǐng)、社區(qū)治理求突破,為民服
2022年以來(lái),在**黨委的正確領(lǐng)導(dǎo)下,堅(jiān)持以習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想為指導(dǎo),深入學(xué)習(xí)宣傳貫徹黨的二十大精神,以黨建工作為統(tǒng)領(lǐng),扎實(shí)開(kāi)展夯實(shí)“三個(gè)基本”活動(dòng),以“四化四力”行動(dòng)為抓手,聚力創(chuàng)建
各位領(lǐng)導(dǎo),同志們:根據(jù)會(huì)議安排,現(xiàn)就2022年度抓基層黨建工作情況匯報(bào)如下:一、主要做法及成效(一)強(qiáng)化政治引領(lǐng)。一是不斷強(qiáng)化理論武裝。堅(jiān)持通過(guò)黨組會(huì)、中心組學(xué)習(xí)會(huì)和“三會(huì)一課”,第一時(shí)間、第一議題學(xué)
2022年度抓基層黨建工作述職報(bào)告按照黨委工作部署,現(xiàn)將本人2022年度抓基層黨建工作情況報(bào)告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發(fā)展首要位置,積極開(kāi)展
2022年,是我在數(shù)計(jì)系黨總支書(shū)記這個(gè)新崗位上度過(guò)的第一個(gè)完整的工作年度。回首一年來(lái)在校黨委的正確領(lǐng)導(dǎo)下,與數(shù)計(jì)系領(lǐng)導(dǎo)班子和全體師生共同走過(guò)的日子,艱辛歷歷在目,收獲溫潤(rùn)心田。作為黨總支書(shū)記,我始終牢
按照考核要求,現(xiàn)將本人一年來(lái),作為統(tǒng)戰(zhàn)部長(zhǎng)履行職責(zé)、廉潔自律等方面情況報(bào)告如下:一、著眼增強(qiáng)政治素質(zhì),不斷深化理論學(xué)習(xí)堅(jiān)持把旗幟鮮明講政治作為履職從政的第一位要求,帶領(lǐng)統(tǒng)戰(zhàn)系統(tǒng)干部堅(jiān)決擁護(hù)“兩個(gè)確立”
**年,緊緊圍繞黨工委、管委會(huì)的決策部署,全體人員團(tuán)結(jié)協(xié)作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開(kāi)拓進(jìn)取,認(rèn)真履職盡責(zé),圓滿(mǎn)完成各項(xiàng)工作任務(wù)。一、個(gè)人思想政治狀況檸檬文苑www bgzjy
按照縣委關(guān)于開(kāi)展抓基層黨建述職評(píng)議會(huì)議的有關(guān)要求,經(jīng)請(qǐng)示縣委組織部同意,今天,我們?cè)诖苏匍_(kāi)2022年度基層黨組織書(shū)記抓基層黨建述職評(píng)議會(huì)議。1 首先,請(qǐng)**黨委書(shū)記,**同志述職。**黨委能夠主動(dòng)研究