83優(yōu)先編碼器真值表
問題1always里面必須是寄存器型8-3優(yōu)先編碼器,所以mc要改成寄存器型 2assign必須是用網(wǎng)線型,所以可以改用mc部分賦值8-3優(yōu)先編碼器的方法給端口 3case語句里面含有無關(guān)量“xquot 要用casex,否則case里面永遠(yuǎn)不能匹配 4輸入輸出端口像你樣寫,S被理解成8位的輸入,同理,gs,es被理解成3位輸出 5always后的。
74LS148和74LS348都是83優(yōu)先權(quán)編碼器,74LS148的VHDL描述如下ENTITY prioty_encoder IS PORTei_nIN BitdIN Bit_Vector7 DOWNTO 0eo_n,gs_nOUT BitaOUT Bit _Vector2 DOWNTO 0END prioty_encoderARCHITECTURE encoder OFprioty_encoder IS BEGIN PROCESS。
74ls348的使能輸入Ei所述的S為低電平有效,F(xiàn)表達(dá)式=i0 + i1 +i7 + S,所以當(dāng)S=1時,不論i0~i7是什麼,F(xiàn)=quot1quot,3個輸出端為高阻抗Z,Eo=1,Gs=1,編碼功能不作用i0~i7可以是quot0quot或quot1quot,低電平有效因為芯片以quot0quot作為判斷輸出組合。
library ieeeuse use entity p_encoder is portst,in0,in1,in2,in3,in4,in5,in6,in7IN bityex,ys,y0,y1,y2out bitend p_encoderarchitecture rtl of p_encoder is signal tmp_inbit_vector7 downto 0signal。
以74LS148,8線3線優(yōu)先編碼器為例,3個編碼輸出端輸出的是反碼,見下表,例如按下I7鍵,編碼應(yīng)該是111,但輸出是反碼000,所以,3個輸出端要用74LS04非門取反變成原碼111,才能送顯示電路顯示出來。
`timescale 1ns10ps module testbenchreg 70 data_in reg s wire 20 data_outwire gs wire es encoder8_3_74LS48 uuts s ,data_in data_in ,gs gs ,es es ,data_outdata_outinitial begin data_in。
增量式編碼器是將位移轉(zhuǎn)換成周期性的電信號,再把這個電信號轉(zhuǎn)變成計數(shù)脈沖,用脈沖的個數(shù)表示位移的大小絕對式編碼器的每一個位置對應(yīng)一個確定的數(shù)字碼,因此它的示值只與測量的起始和終止位置有關(guān),而與測量的中間過程無關(guān)編譯為對應(yīng)位的二進(jìn)制,如輸入00000001中D0位從右向左0開始計位位。
74HC148 是跟 74HC138 完全相反的數(shù)字芯片,其功能是quot8進(jìn)3線優(yōu)先編碼器quot,還有跟 74HC148 相似的還有 74HC147 ,其功能是quot10進(jìn)4線優(yōu)先編碼器quot若你要16進(jìn)4出的編碼芯片,也可以用兩片74HC148級聯(lián)得到。
1,如果在本模塊內(nèi),你需要實現(xiàn)2個83優(yōu)先編碼器,哪么就可以直接調(diào)用 function 模塊就行8-3優(yōu)先編碼器了,這樣使程序更簡潔2,如果在本模塊內(nèi)只需要實現(xiàn)一個83優(yōu)先編碼器,就可以用 always ,在需要的地方直接調(diào)用該模塊更利于綜合修改后代碼如下 module code8_3I,Yinput70Ioutput20Yr。