以下内容直接粘贴自word文档。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
library ieee;
use ieee.std_logic_1164.all; entity decoder37 is port( data:in std_logic_vector(2 downto 0); seg:out std_logic_vector(6 downto 0)); end decoder37; architecture rtl of decoder37 is begin process(data) begin case data is when "000" =>seg<="0000001"; when "001" =>seg<="0000010"; when "010" =>seg<="0000100"; when "011" =>seg<="0001000"; when "100" =>seg<="0010000"; when "101" =>seg<="0100000"; when "110" =>seg<="1000000"; when others =>null; end case; end process; end rtl; |
3、完成顶层设计:
加位选和段选电路:
位选电路:用7个数码管,从右至左扫描。模拟数据左移。需要用到模7计数器,3线7线译码器。
段选电路:序列发生器并行输出端经过7选1多路选择器,接7段译码器7449。在数码管上显示输入序列。
4、仿真测试
计数序列为1110010时z输出为1,检测结果正确
局部图:
数码管显示为1110010,显示结果正确
5、硬件测试
Node Name | Pin_Number | Node Name | Pin_Number | Node Name | Pin_Number |
clk | 122 | dout | 21 | z | 9 |
Clk_seg | 55 | q | 41 39 38 37 36 33 32 | ||
reset | 95 | bsg | 96 97 98 99 100 101 102 | ||
in | 72 73 78 79 80 81 82 | qseg | 51 49 48 47 46 44 43 |
当序列为1110010,即数码管上显示1110010时,9号显示灯亮,结果正确。
博客能带货吗
发表评论