Presentation is loading. Please wait.

Presentation is loading. Please wait.

Лекция №2. Особенности языков описания аппаратуры AHDL, VerilogHDL, VHDL Схемотехника ЭВМ ч.2 НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ.

Similar presentations


Presentation on theme: "Лекция №2. Особенности языков описания аппаратуры AHDL, VerilogHDL, VHDL Схемотехника ЭВМ ч.2 НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ."— Presentation transcript:

1 Лекция №2. Особенности языков описания аппаратуры AHDL, VerilogHDL, VHDL Схемотехника ЭВМ ч.2 НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ Мальчуков Андрей Николаевич Томск – 2014

2 HDL – языки описания аппаратуры 2 AHDL – Altera HDL. Разработан фирмой Altera. Сфокусирован на описание элементов на базе примитивов – абстракций элементов реальной платформы, для которой пишется описание. Можно использовать только для устройств фирмы Altera. VHDL - англ. VHSIC (Very high speed integrated circuits) Hardware Description Language - "язык аппаратного описания для быстродействующих интегрированных цепей". Создан по заказу Пентагона как и ADA. Нет ограничение на использование. Verilog HDL – другой открытый и бурно развивающий стандарт. Нет ограничение на использование.

3 Входы/выходы 3 AHDL CLK : INPUT;INSTR_DATA[7..0]: INPUT; REFRESH : OUTPUT;INSTR[7..0] : OUTPUT; Verilog input CLK, input [7:0] INSTR_DATA, output reg REFRESH = 0,output reg [7:0] INSTR = 0, output LCD_STATEoutput [3:0] INIT_STATE, VHDL CLK: in std_logic; INSTR_DATA: in std_logic_vector (7 downto 0); SBUSY: in boolean; DELAY: out natural range 0 to 2**28-1; ONE_CYCLE: out std_logic; INIT_STATE_OUT: out std_logic_vector (3 downto 0);

4 AHDL: инициализация I/O (вх/вых) регистры – набор триггеров 4 AHDL DELAY[27..0] : DFFE; REFRESH : DFF; DATA_OUT[3..0] : DFF; LED[8..0] : NODE; led_reg[8..5] : DFFE; DELAY[27..0].clk = CLK; REFRESH.clk = CLK; DATA_OUT[3..0].clk = CLK; led_reg[].clk = CLK; LED[4..0] = NOT lcd_state_reg[]; LED[8..5] = NOT led_reg[];

5 Verilog: регистры и провода 5 Verilog reg lcd_state = 0; reg [3:0] init_state = 0; reg [3:0] exec_state = 0; wireMAIN_ST_SIG = main_state > 0 && main_state < 7 ? 1'b1 : 1'b0; assign INIT_STATE = ~init_state; assign EXEC_STATE = ~exec_state; assign LCD_STATE = ~lcd_state; output [3:0] INIT_STATE, output [3:0] EXEC_STATE, output LCD_STATE

6 VHDL: переменные 6 VHDL variable init_state_reg : std_logic_vector (3 downto 0); variable epw : natural range 0 to 25; variable first_cycle : natural range 0 to 1; variable lcd_state_reg : std_logic; INIT_STATE_OUT <= not init_state_reg; EXEC_STATE_OUT <= not exec_state_reg; LCD_STATE_OUT <= not lcd_state_reg;

7 A-Ver-V -HDL: константы 7 AHDL CONSTANT str_high = X" "; CONSTANT str_low = X"205045A3A54D203C E205045A3A54D203C E205045A3A54D203C E20"; Verilog parameter str_high = " "; parameter str_low = {" PE",8'hA3,8'hA5,"M"," "," PE",8'hA3,8'hA5,"M"," "," PE",8'hA3,8'hA5,"M"," "}; VHDL constant str_high : std_logic_vector (319 downto 0) := X" ";

8 A-Ver-V -HDL: работа с регистрами 8 AHDL DFFE: led_reg[].ena = VCC; led_reg[] = X"1"; DFF: WRITE_COMMAND = B"1"; Verilog INSTR <= 8'b0011_XXXX; DELAY <= 28'h2625A00; ONE_CYCLE <= 1'b1; WRITE_COMMAND <= 0; VHDL INSTR <= B"0011_0000"; DELAY <= 16#2625A00#; ONE_CYCLE <= '1'; init_state_reg := X"0";

9 A-Ver-V -HDL: IF (условный оператор) 9 AHDL IF (SBUSY == B"0") THEN IF (delay_command[] == DELAY[]) THEN IF (char_cnt[] == X"28") Verilog if (!SBUSY && !RESET) begin if (delay_command == DELAY) if (char_cnt == 39) VHDL if (SBUSY) then | if (not SBUSY) then if ((ONE_CYCLE = '1') or (ONE_CYCLE = '0' and first_cycle = 0)) then if (delay_command = DELAY) then

10 A-Ver-V -HDL: CASE (автомат) 10 AHDL command_state : MACHINE OF BITS(cmd_state_reg[1..0]) WITH STATES(s0 = X"00", s1 = X"01", s2 = X"02", s3 = X"03"); command_state = s1; CASE command_state IS WHEN s0 => Verilog reg [2:0] command_state; command_state <= 1; case (command_state) 0: begin VHDL type state_type is (s0, s1, s2, s3); signal command_state : state_type; command_state <= s1; case command_state is when s0 =>

11 A-Ver-V -HDL: тактирование 11 AHDL Передний фронт – в CASE (MACHINE OF BITS) Verilog CLK) begin CLK) begin VHDL if (rising_edge(CLK)) then if (falling_edge(CLK)) then

12 VHDL: преимущества 12 VHDL OUT_BYTE <= buffer_bytes (7 + 8*send_cnt downto 8*send_cnt); buffer_bytes(7 + 8*receive_cnt downto 8*receive_cnt) := IN_BYTE; RXD <= BYTE (bit_cnt - 1);

13 AHDL: деление 13 AHDL Нет оператора деления. Необходимо использовать мегафункцию QuartusII -> Divide.

14 Структурно-функциональная схема 14

15 Лекция №2. Особенности языков описания аппаратуры AHDL, VerilogHDL, VHDL Схемотехника ЭВМ ч.2 НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ Мальчуков Андрей Николаевич Томск – 2014


Download ppt "Лекция №2. Особенности языков описания аппаратуры AHDL, VerilogHDL, VHDL Схемотехника ЭВМ ч.2 НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ."

Similar presentations


Ads by Google