andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба На этом кристалле я думаю единственное, что вам доступно - это деление на 2частоты на обычных счетчиках. Если Вам нужно разные сетки частот, то нужно поставить внешние например 100 МГц кварц и тот же 80 МГц. От них делением и выбором можно получить мксек: за идею спасибо :beer: А вот от разных генераторов можно попробовать, сейчас прикину. давайте вернёмся к этому вопросу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Ну вот , все куда-то убежали, а я уже научился делать свои символы и переносить их в проект.Только он пустой.Научите меня заполнять его кодом на VHDL ну хотябы для простоты понимания двумя двоичными счётчиками. :beer: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
chds 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Код делителя: signal cnt : std_logic_vector(7 downto 0); cnt : process (clk80) begin if (clk80=1 and clk80'event) then cnt <= cnt+1; end if; end process; out1 <= cnt(0); out2 <= cnt(1); out3 <= cnt(2); ... out8 <= cnt(7); А как добавлять VHDL к схемотехническому проекту, на сколько я помню, я Вам пошагово отписывал. Так что обратитесь к истории. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Спасибо за код.Вы мне описывали как его встраивать, это я усвоил.А как заполнять не научили А , вот нашёл. Это оно так должно выглядеть ? ---------------------------------------------------------------------------------- -- Company: -- Engineer: -- -- Create Date: 17:55:55 05/04/2008 -- Design Name: -- Module Name: counter - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity counter is Port ( IN80 : in STD_LOGIC; IN100 : in STD_LOGIC; OUT1 : out STD_LOGIC; OUT2 : out STD_LOGIC; OUT3 : out STD_LOGIC; OUT4 : out STD_LOGIC; OUT5 : out STD_LOGIC; OUT6 : out STD_LOGIC; OUT7 : out STD_LOGIC; OUT8 : out STD_LOGIC); end counter; architecture Behavioral of counter is signal cnt : std_logic_vector(7 downto 0); cnt : process (clk80) begin if (clk80=1 and clk80'event) then cnt <= cnt+1; end if; end process; out1 <= cnt(0); out2 <= cnt(1); out3 <= cnt(2); out4 <= cnt(3); out5 <= cnt(4); out6 <= cnt(5); out7 <= cnt(6); out8 <= cnt(7); end Behavioral; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба на эту строку cnt : process (clk80) пишет Line 46. parse error, unexpected IDENTIFIER я её закрываю , а он на эту строчку if (clk80=1 and clk80'event) then пишет Line 50. parse error, unexpected IF я её закрываю, а он на эту строчку end if; пишет Line 52. parse error, unexpected IF, expecting SEMICOLON я и её закрываю, а он на эту строчку end process; а он пишет Line 53. parse error, unexpected PROCESS, expecting SEMICOLON а если и её закрыть, то все ошибки исчезают, но работать наверное не будет, щас проверю точно, не работает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Very_hard 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба После строки signal cnt : std_logic_vector(7 downto 0); нужно добавить begin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба должно быть два бегина? ERROR:HDLParsers:3312 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 47. Undefined symbol 'clk80'. ERROR:HDLParsers:1209 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 47. clk80: Undefined symbol (last report in this block) ERROR:HDLParsers:808 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 51. = can not have such operands in this context. ERROR:HDLParsers:1202 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 54. Redeclaration of symbol cnt. WARNING:HDLParsers:1406 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 47. No sensitivity list and no wait in the process Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Very_hard 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Знаете, если просто читать лог ошибок и предупреждений, можно многое понять самостоятельно... а не постить каждую ошибку на форуме. Да и книги по вхдлу не отменяли. В данном случае в схеме у Вас нет ни сигнала, ни порта clk80, а Вы описываете процесс с его участием, вот и получается ошибка. Замените clk80 на IN80, например, т.к. IN80 у Вас есть в портах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба знаете, я догадался заменить, то , о чём вы пишете и получил вот это F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 53. = can not have such operands in this context. ERROR:HDLParsers:1202 - "F:/Projekte/XilinxProjekte/SCOP_SPECTR/OSZILLOGRAF/counter.vhd" Line 56. Redeclaration of symbol cnt. и книжку по теме нашёл, автор П.Н.Бибило, уже как часа три читаю, не хотите не помагйте, вас сюда никто не тащил насильно. До свидания :beer: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Omen_13 0 4 мая, 2008 Опубликовано 4 мая, 2008 (изменено) · Жалоба cnt : process (clk80) begin if (clk80=1 and clk80'event) then cnt <= cnt+1; end if; end process; чего шумите? Попробуй так: process (IN80 ) begin if (IN80'event and IN80 ='1') then cnt <= cnt+'1'; end if; end process; Внимательнее прочитай разделы о переменных. К сигналу пишется '1', для вектора "111", просто 1 для integer и т.д. Изменено 4 мая, 2008 пользователем Omen_13 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Вот спасибо мил человек :a14: всё и заработало entity counter is Port ( IN80 : in STD_LOGIC; IN100 : in STD_LOGIC; OUT1 : out STD_LOGIC; OUT2 : out STD_LOGIC; OUT3 : out STD_LOGIC; OUT4 : out STD_LOGIC; OUT5 : out STD_LOGIC; OUT6 : out STD_LOGIC; OUT7 : out STD_LOGIC; OUT8 : out STD_LOGIC); end counter; architecture Behavioral of counter is signal counter : std_logic_vector(7 downto 0); begin process (IN80 ) begin if (IN80 ='1' and IN80 'event) then counter <= counter+'1'; end if; end process; out1 <= counter(0); out2 <= counter(1); out3 <= counter(2); out4 <= counter(3); out5 <= counter(4); out6 <= counter(5); out7 <= counter(6); out8 <= counter(7); end Behavioral; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 6 мая, 2008 Опубликовано 6 мая, 2008 · Жалоба всё тот же ХС9572 РС44 Можно попробовать сделать DSS, ресурсов должно хватить, но может не хватить быстродействия :( (Verilog, 8ми разрядный DSS,минимальный коэфициент деления - 2) module DSS(input clk, input [6:0] freq, output f_out); reg [7:0] cnt = 8'b0; always @(posedge clk) cnt <= cnt + {1'b0,freq}; assign f_out = cnt[7]; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться