tujuh segmen tampilan

F

fakeha_s

Guest
Saya ingin melihat saya Seve segmen output layar, apakah saya membuat file Verilog terpisah kode Seve dirancang untuk segmen dan menggunakan output di sini atau di file Verilog yang sama (yang berisi kode saya) i do Instansiasi

 
Anda harus menulis HDL file yang akan menurunkan 7 segmen layar.
Salam,
Amr.

 
Aku hve tht sebuah kode VHDL karakter sebagai berikut displas bagaimana saya menggunakan kode ini untuk menampilkan output 7 bit dinamakan error_bit
Saat ini kode saya menunjukkan nilai-nilai ini pada output tapi file Verilog saya telah membuat outputnya error_bit i yang ingin ditampilkan pada output tidak nilai-nilai ini (kode ini tidak dirancang oleh me so i t saya mengalami kesulitan menentukan di mana harus melakukan perubahan) akan kode Verilog saya bisa bekerja dengan kode VHDL
0000
1F2E
2E4C
3D6A
4C88
5BA6
6AC4
79E2
8800
972E
A64C
B56A
C488
D3A6
E2C4
F1E2

library IEEE;
menggunakan IEEE.STD_LOGIC_1164.ALL;
menggunakan IEEE.STD_LOGIC_ARITH.ALL;
menggunakan IEEE.STD_LOGIC_UNSIGNED.ALL;

- Uncomment baris berikut untuk menggunakan deklarasi yang
- Xilinx instantiating disediakan untuk komponen primitif.
- perpustakaan UNISIM;
- menggunakan UNISIM.VComponents.all;

badan saya adalah port (
- swt: di std_logic_vector (3 downto 0);
ssg: keluar std_logic_vector (6 downto 0);
reset: di std_logic;
clk50: di std_logic;
sel: keluar std_logic_vector (3 downto 0));
mengakhiri;

Behavioral arsitektur saya adalah
sinyal ChangeDigit: std_logic_vector (1 downto 0);
sinyal menghitung, count1, count2, count3, Curr: std_logic_vector (3 downto 0);
sinyal mhertz_count: std_logic_vector (5 downto 0); --
sinyal khertz_count: std_logic_vector (9 downto 0); --
sinyal hertz_count: std_logic_vector (9 downto 0); --
sinyal mhertz_en: std_logic; --
sinyal khertz_en: std_logic; --
sinyal hertz_en: std_logic; --

mulai
- HEX-ke-tujuh-segmen decoder
- HEX: di STD_LOGIC_VECTOR (3 downto 0);
- LED: keluar STD_LOGIC_VECTOR (6 downto 0);
--
- Segmen encoding
- 0
- ---
- 5 | | 1
- --- <- 6
- 4 | | 2
- ---
- 3
- sel <= "1110";
- CE <= '1 ';
- Dengan countc Pilih
- "6543210"
- Ssg <= "1111001" ketika "0.001", - 1
- "0100100" ketika "0.010", - 2
- "0100100" ketika "0.011", - 3
- "0100100" ketika "0.100", - 4
- "0010010" ketika "0.101", - 5
- "0000010" ketika "0.110", - 6
- "1111000" ketika "0.111", - 7
- "0000000" ketika "1000", - 8
- "0010000" ketika "1001", - 9
- "1000000" ketika orang lain; - 0- 4-bit counter sinkron dengan hitungan memungkinkan,

proses (hertz_en, RESET)
mulai
jika RESET = '1 'lalu
COUNT <= "0000";
elsif hertz_en = '1 'dan kemudian hertz_en'event
COUNT <= COUNT 1;
end if;
proses akhir;
proses (hertz_en, RESET)
mulai
jika RESET = '1 'lalu
COUNT1 <= "0000";
elsif hertz_en = '1 'dan kemudian hertz_en'event
COUNT1 <= COUNT1 - 1;
end if;
proses akhir;
proses (hertz_en, RESET)
mulai
jika RESET = '1 'lalu
COUNT2 <= "0000";
elsif hertz_en = '1 'dan kemudian hertz_en'event
COUNT2 <= COUNT2 2;
end if;
proses akhir;
proses (hertz_en, RESET)
mulai
jika RESET = '1 'lalu
COUNT3 <= "0000";
elsif hertz_en = '1 'dan kemudian hertz_en'event
COUNT3 <= COUNT3 - 2;
end if;
proses akhir;
proses (clk50, reset)
mulai
jika reset = '1 'lalu
mhertz_count <= (orang lain => '0 ');
mhertz_en <= '0 ';
elsif clk50'event dan clk50 = '1 'lalu
mhertz_count <= mhertz_count 1;
jika mhertz_count = "110.010" maka
mhertz_en <= '1 ';
mhertz_count <= (orang lain => '0 ');
lain
mhertz_en <= '0 ';
end if;
end if;
proses akhir;

- 1 kHz menghasilkan sinyal dari 1MHz per sinyal
proses (clk50, reset)
mulai
jika reset = '1 'lalu
khertz_count <= (orang lain => '0 ');
khertz_en <= '0 ';
elsif clk50'event dan clk50 = '1 'lalu
jika mhertz_en = '1 'lalu
khertz_count <= khertz_count 1;
jika khertz_count = "1111101000" kemudian
khertz_en <= '1 ';
khertz_count <= (orang lain => '0 ');
lain
khertz_en <= '0 ';
end if;
lain
khertz_en <= '0 ';
end if;
end if;
proses akhir;

- 1 Hz menghasilkan sinyal dari sinyal 1 kHz
proses (clk50, reset)
mulai
jika reset = '1 'lalu
hertz_count <= (orang lain => '0 ');
hertz_en <= '0 ';
elsif clk50'event dan clk50 = '1 'lalu
jika khertz_en = '1 'lalu
hertz_count <= hertz_count 1;
jika hertz_count = "1111101000" kemudian
hertz_en <= '1 ';
hertz_count <= (orang lain => '0 ');
lain
hertz_en <= '0 ';
end if;
lain
hertz_en <= '0 ';
end if;
end if;
proses akhir;

- Blok ini menunjukkan bagaimana untuk multiplex output ke 7-segmen yang berbeda
proses (clk50, reset)
mulai
jika reset = '1 'lalu
ssg <= (orang lain => '1 ');
sel <= (orang lain => '1 ');
Curr <= (orang lain => '0 ');
elsif clk50'event dan clk50 = '1 'lalu
ChangeDigit <= "11";
ChangeDigit kasus adalah
ketika "00" => Curr <= count; sel <= "1110";
ketika "01" => Curr <= count1; sel <= "1101";
ketika "10" => Curr <= count2; sel <= "1011";
ketika orang lain => Curr <= count3; sel <= "0.111";
kasus akhir;

jika khertz_en = '1 'lalu
ChangeDigit <= ChangeDigit 1;
lain
ChangeDigit <= ChangeDigit;
end if;
Curr kasus ini
ketika "0000" => ssg <= "1.000.000";
ketika "0.001" => ssg <= "1.111.001";
ketika "0.010" => ssg <= "0.100.100";
ketika "0.011" => ssg <= "0.110.000";
ketika "0.100" => ssg <= "0.011.001";
ketika "0.101" => ssg <= "0.010.010";
ketika "0.110" => ssg <= "0.000.010";
ketika "0.111" => ssg <= "1.111.000";
ketika "1000" => ssg <= "0.000.000";
ketika "1001" => ssg <= "0.010.000";
ketika "1010" => ssg <= "0.001.000";
ketika "1011" => ssg <= "0.000.011";
ketika "1100" => ssg <= "1.000.110";
ketika "1101" => ssg <= "0.100.001";
ketika "1110" => ssg <= "0.000.110";
ketika "1111" => ssg <= "0.001.110";
ketika orang lain => ssg <= "1000000";
kasus akhir;

end if;
proses akhir;

end Behavioral;

 
Anda perlu terlebih dahulu untuk merancang sebuah 7-bit ke 7-segmen decoder.(decimal), u should write a code to encode the 3
& to encode the 9
into the required format to derive the 7-segment dispay.

Katakanlah u mau output 39
(desimal), u harus menulis kode untuk menyandikan 3
& untuk menyandikan 9
ke dalam format yang diperlukan untuk menurunkan 7-segmen dispay.Dalam kode terkirim ada contoh hex untuk segmen coding, menggantikannya dengan ur encoding
Kemudian desain controller jika diperlukan bagi 7 segmen layar.kode ini adalah tidak baik kontroler neeeded.Itu tergantung pada FPGA itu sendiri.
Menghubungkan blok tersebut ke kode Anda & semoga ISA itu akan bekerja.

Salam,
Amr.

 
blok untuk ihz sinyal ikhz multiplexing sinyal dan tidak perlu diubah kan?
konter blok yang saya mengerti adalah nilai-nilai incrementing yang ditampilkan pada segmen bagaimana saya menampilkan output [6:0] error_detected

multiplexing blok mendefinisikan jika 1 yang setara kode hex
Kode equ 2 nya

 
Ya anda harus menulis kode ur sendiri untuk mengontrol output sesuai dengan kode kesalahan ur.
Salam,
Amr.

 
sebagian besar dari kit FPGA disediakan dengan tujuh segmen menampilkan tetapi tidak decoders, jadi u harus membuat sebuah BCD-7SEG decoder untuk melihat 7SEG output pada layar.satu hal lagi adalah semua display di papan akan memiliki satu pilih line.So menggunakannya dalam waktu dengan cara multiplexing.

 

Welcome to EDABoard.com

Sponsor

Back
Top