Форум РадиоКот https://radiokot.ru/forum/ |
|
Схема выдающая последовательно номер https://radiokot.ru/forum/viewtopic.php?f=60&t=150134 |
Страница 1 из 1 |
Автор: | Dimson12 [ Вт ноя 21, 2017 11:13:39 ] | ||
Заголовок сообщения: | Схема выдающая последовательно номер | ||
Добрый день, не могу выполнить задание, т.к. только начал изучать VHDL. Требуется построить схему, выдающую в последовательном виде число 10011 по запускающему одиночному импульсу длительностью 1 период тактовой частоты. Я написал код как смог, но компилятор пишет что у меня регистр N(4) не используется. Помогите разобраться, рисунок временных диаграмм прилагаю. Код library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity lab4 is Port ( CLK : in STD_LOGIC; CE, SRST : in STD_LOGIC; Q: out STD_LOGIC_VECTOR(4 downto 0)); end lab4; architecture rtl of lab4 is signal N: STD_LOGIC_VECTOR(4 downto 0); begin process(CLK) begin if rising_edge(CLK) then if SRST = '1' then N <= (others => '0'); elsif CE = '1' then if N = "11001" then N <= (others => '0'); else N(0) <= '1'; N <= N(4 downto 1)& N(0); end if; end if; end if; Q <= N; end process; end rtl;
|
Автор: | kolpakchi [ Вт ноя 21, 2017 16:21:19 ] |
Заголовок сообщения: | Re: Схема выдающая последовательно номер |
Код: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity lab4 is Port ( CLK : in STD_LOGIC; CE, SRST : in STD_LOGIC; Q: out STD_LOGIC); end lab4; architecture rtl of lab4 is signal N: STD_LOGIC_VECTOR(4 downto 0); signal i: integer range 0 to 5; begin process(CLK) begin if rising_edge(CLK) then if SRST = '1' then i<=5; N<="10011"; Q<='0'; else if CE = '1' then i<=0; end if; if i=5 then Q<='0'; else i<=i+1; Q<=N(i); end if; end if; end if; end process; end rtl; Так? |
Автор: | Dimson12 [ Вт ноя 21, 2017 23:59:30 ] |
Заголовок сообщения: | Re: Схема выдающая последовательно номер |
Благодарю за ответ, это то что нужно Добавлено after 21 minute 16 seconds: Уважаемый kolpakchi, могли бы вы скинуть test bench к данному модулю ??? |
Автор: | kolpakchi [ Ср ноя 22, 2017 15:56:25 ] |
Заголовок сообщения: | Re: Схема выдающая последовательно номер |
Все что до Stimulus process сгенерил ise. Код: LIBRARY ieee;
USE ieee.std_logic_1164.ALL; ENTITY lab_test IS END lab_test; ARCHITECTURE behavior OF lab_test IS COMPONENT lab4 PORT( CLK : IN std_logic; CE : IN std_logic; SRST : IN std_logic; Q : OUT std_logic ); END COMPONENT; --Inputs signal CLK : std_logic := '0'; signal CE : std_logic := '0'; signal SRST : std_logic := '1'; --Outputs signal Q : std_logic; -- Clock period definitions constant CLK_period : time := 10 ns; BEGIN -- Instantiate the Unit Under Test (UUT) uut: lab4 PORT MAP ( CLK => CLK, CE => CE, SRST => SRST, Q => Q ); -- Clock process definitions CLK_process :process begin CLK <= '0'; wait for CLK_period/2; CLK <= '1'; wait for CLK_period/2; end process; -- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. wait for 100 ns; srst<='0'; wait for CLK_period*10; wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); ce<='1'; wait until rising_edge(clk); ce<='0'; wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); wait until rising_edge(clk); ce<='1'; wait until rising_edge(clk); ce<='0'; wait until rising_edge(clk); -- insert stimulus here wait; end process; END; |
Автор: | Dimson12 [ Ср ноя 22, 2017 21:15:04 ] |
Заголовок сообщения: | Re: Схема выдающая последовательно номер |
Спасибо за помощь! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |