|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
vhdl中向port賦值后值會(huì)變化嗎? |
| 作者:hbsjzzx 欄目:EDA技術(shù) |
這是我修改后的代碼。原來的代碼中是沒有那個(gè)signal的,直接向端口賦值。但是仿真波形中ACC有時(shí)會(huì)自動(dòng)清0,改后就沒問題了。請問是什么原因?我用的maxplusII library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; ENTITY acc_alu IS PORT ( BR : IN std_logic_vector(15 downto 0); add,sub,shiftl,shiftr : IN std_logic; logic_and,logic_or,logic_not : IN std_logic; sl_in,sr_in,reset,clk : IN std_logic; acc_is0 :out std_logic; acc : buffer std_logic_vector(15 downto 0) ); END acc_alu; ARCHITECTURE a OF acc_alu IS signal acc1:std_logic_vector(15 downto 0); BEGIN acc_is0<='1' when acc="0000000000000000" else '0'; PROCESS (clk) variable selfunction : std_logic_vector(6 downto 0); BEGIN selfunction:=add & sub & shiftl & shiftr & logic_and & logic_or & logic_not; if reset='1' then acc1<="0000000000000000"; elsif clk'event and clk = '1' then case selfunction is when "1000000"=> --acc=acc+br acc1<=acc1+BR; when "0100000"=> --acc=acc-br acc1<=acc1-BR; when "0010000"=> --shift acc to the left 1 bit acc1<=acc1(14 downto 0) & sl_in; when "0001000"=> --shift acc to the right 1 bit acc1<=sr_in & acc1(15 downto 1); when "0000100"=> --acc=acc AND br acc1<=acc1 and BR; when "0000010"=> --acc=acc OR br acc1<=acc1 or BR; when "0000001"=> -- complement acc; acc=not acc; acc1<=not acc1; when others=>NULL ; --in other cases, acc don't be changed end case; acc<=acc1; end if; END PROCESS; END a; |
| 2樓: | >>參與討論 |
| 作者: loottp 于 2005/3/26 12:25:00 發(fā)布:
buffer是緩沖模式 該模式表示端口數(shù)據(jù)或信號(hào)既可以向設(shè)計(jì)實(shí)體外部作用而流出端口,同時(shí)也可以將流出端口的數(shù)據(jù)或信號(hào)引回到被設(shè)計(jì)實(shí)體,用于實(shí)現(xiàn)內(nèi)部反饋。內(nèi)部反饋的實(shí)現(xiàn)方法是被設(shè)計(jì)實(shí)體的一個(gè)端口設(shè)定為緩沖模式,同時(shí)在該設(shè)計(jì)實(shí)體內(nèi)部建立內(nèi)部結(jié)點(diǎn)。也就是要加一個(gè)signal的原因 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |