📄 比较器_4bit.vhd
字号:
--Magnitude Comparator--VHDL description of a 4-bit magnitude comparator with expansion inputs--first architecture demonstrates use of relational operators on--bit vectors (=,>,<).Second architecture shows sequential behaviour--description.Both descriptions do not fully model behaviour of real--device for all possible combinations of inputs.ENTITY mag4comp ISGENERIC(eqdel,gtdel,ltdel : TIME := 10 ns); --output delay parametersPORT(a,b : IN BIT_VECTOR(3 DOWNTO 0); --input words, DOWNTO orderingneeded for comparison operatorsaeqbin,agtbin,altbin : IN BIT; --expansion inputsaeqbout,agtbout,altbout : OUT BIT); --outputsEND mag4comp;ARCHITECTURE dataflow OF mag4comp IS--this architecture assumes that only one of the expansion inputs--is active at any time,if more than one expansion input is active,--more than one output may be active.BEGINaeqbout <= '1' AFTER eqdel WHEN ((a = b) AND (aeqbin = '1'))ELSE '0' AFTER eqdel;agtbout <= '1' AFTER gtdel WHEN ((a > b) OR ((a = b) AND (agtbin = '1')))ELSE '0' AFTER gtdel;altbout <= '1' AFTER ltdel WHEN ((a < b) OR ((a = b) AND (altbin = '1')))ELSE '0' AFTER ltdel;END dataflow;ARCHITECTURE behaviour OF mag4comp ISBEGINPROCESS(a,b,aeqbin,agtbin,altbin)BEGINIF (a > b) THENagtbout <= '1' AFTER gtdel;aeqbout <= '0' AFTER eqdel;altbout <= '0' AFTER ltdel;ELSIF (a < b) THENaltbout <= '1' AFTER ltdel;aeqbout <= '0' AFTER eqdel;agtbout <= '0' AFTER gtdel;ELSE --a=b,expansion inputs have priority orderingIF (aeqbin = '1') THENaeqbout <= '1' AFTER eqdel;agtbout <= '0' AFTER gtdel;altbout <= '0' AFTER ltdel;ELSIF (agtbin = '1') THENagtbout <= '1' AFTER gtdel;altbout <= '0' AFTER ltdel;aeqbout <= '0' AFTER eqdel;ELSIF (altbin = '1') THENagtbout <= '0' AFTER gtdel;altbout <= '1' AFTER ltdel;aeqbout <= '0' AFTER eqdel;ELSEagtbout <= '0' AFTER gtdel;altbout <= '0' AFTER ltdel;aeqbout <= '0' AFTER eqdel;END IF;END IF;END PROCESS;END behaviour;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -