我得到的警告类似于50 MHz到64KHz频率
警告:Xst:647-从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:1290 - 分块在块中未连接。 它将从设计中删除。 警告:Xst:1290 - 分块在块中未连接。 它将从设计中删除。 警告:Xst:1290 - 分块在块中未连接。 它将从设计中删除。 警告:Xst:524 - 块的实例的所有输出都在块中未连接。 此实例将与设计一起从所有基础逻辑中删除 警告:Xst:2677 - 顺序类型的节点在块中未连接。 警告:Xst:1710 - FF/Latch(无初始值)在块中具有常数值0。这个FF/Latch将在优化过程中被修剪。 警告:Xst:1895 - 由于其他FF/Latch修剪,FF/Latch(无初始值)在块中具有恒定值0。这个FF/Latch将在优化过程中被修剪。 警告:Xst:1895 - 由于其他FF/Latch修剪,FF/Latch(无初始值)在块中具有恒定值0。这个FF/Latch将在优化过程中被修剪。 警告:Xst:1895 - 由于其他FF/Latch修剪,FF/Latch(无初始值)在块中具有恒定值0。这个FF/Latch将在优化过程中被修剪。 警告:Xst:1895 - 由于其他FF/Latch修剪,FF/Latch(无初始值)在块中具有恒定值0。这个FF/Latch将在优化过程中被修剪。 警告:Xst:1895 - 由于其他FF/Latch修剪,FF/Latch(无初始值)在块中具有恒定值0。这个FF/Latch将在优化过程中被修剪。
-- ///////// 50MHz to 64KHz ///////////
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity clk64kHz is -- input freq 50MHz and output is 64MHz
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
clk_out: out STD_LOGIC
);
end clk64kHz;
architecture Behavioral of clk64kHz is
signal temporal: STD_LOGIC := '0';
signal counter : STD_LOGIC_VECTOR (8 downto 0) := "000000000";
begin
freq_divider: process (reset, clk) begin
if (reset = '1') then
temporal <= '0';
counter <= "000000000";
elsif rising_edge(clk) then
if (counter = "110000110") then -- conuter 50MHz/64KHz = 790/2 = 110000110 50% duty cycle
temporal <= NOT(temporal);
counter <= "000000000";
else
counter <= counter + 1;
end if;
end if;
end process;
clk_out <= temporal;
end Behavioral;
-- /////////////// time period of 10ms //////////////////
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity counter_10ms is
Port (clk_out : in STD_LOGIC := '0';
reset : in STD_LOGIC;
counter_out : out STD_LOGIC_vector(9 downto 0) := "0000000000");
end counter_10ms;
architecture Behavioral of counter_10ms is
signal cnt : std_logic_vector (9 downto 0) := "0000000000";
-- Counter, from 0 to 640 (10msx64Khz=1010000000)
begin
counter: process (clk_out,reset)
begin
if (reset = '1') then
cnt <= "0000000000";
elsif rising_edge(clk_out) then
if (cnt = "1010000000") then
cnt <= ("0000000000");
else
cnt <= cnt + 1;
end if;
end if;
end process;
counter_out <= cnt;
end Behavioral;
--//////////////////////////////////// decoder/////////////////////////////////////////////
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity decoder_4to10 is
Port (clk_out :in std_logic;
data_in : in STD_LOGIC_VECTOR (3 downto 0);
data_out : out STD_LOGIC_VECTOR (9 downto 0));
end decoder_4to10;
architecture Behavioral of decoder_4to10 is
-- signal clk_out : std_logic := '0';
begin
decoder_process : process (data_in,clk_out)
begin
case (data_in) is
when "0000" => data_out <= "0001000000";
when "0001" => data_out <= "0010000000";
when "0010" => data_out <= "0011000000";
when "0011" => data_out <= "0100000000";
when "0100" => data_out <= "0101000000";
when "0101" => data_out <= "0110000000";
when "0110" => data_out <= "0111000000";
when "0111" => data_out <= "1000000000";
when "1000" => data_out <= "1001000000";
when "1001" => data_out <= "1010000000";
when others => data_out <= "0000000000";
end case;
end process decoder_process;
end Behavioral;
-- ////////////////// comparator ////////////////////////
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity comparator is
Port (data_in : in STD_LOGIC_VECTOR (3 downto 0);
reset : in STD_LOGIC;
clk : in std_logic :='0';
pwm_out : out STD_LOGIC);
end comparator;
architecture Behavioral of comparator is
signal counter_out : std_logic_vector (9 downto 0):= "0000000000";
-- signal data_in : std_logic_vector (3 downto 0);
-- signal clk: std_logic :=0;
begin
my_process : process (clk,reset,data_in)
begin
if rising_edge(clk) then
if reset ='1' then
pwm_out <= '0';
elsif counter_out < data_in then
pwm_out <= '1';
else
pwm_out <= '0';
end if;
end if;
end process;
end Behavioral;
-- //////////// top module //////////////////
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity pwm_10ms is
Port (
clk: in std_logic;
reset : in STD_LOGIC;
data_in : in STD_LOGIC_VECTOR(3 downto 0);
pwm_out : out STD_LOGIC);
end pwm_10ms;
architecture Behavioral of pwm_10ms is
component clk64kHz is -- input freq 50MHz and output is 64MHz
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
clk_out: out STD_LOGIC);
end component;
component counter_10ms is
Port (clk_out : in STD_LOGIC := '0';
reset : in STD_LOGIC;
counter_out : out STD_LOGIC_VECTOR (9 downto 0));
end component;
component decoder_4to10 is
Port (clk_out :in std_logic;
data_in : in STD_LOGIC_VECTOR (3 downto 0);
data_out : out STD_LOGIC_VECTOR (9 downto 0));
end component;
component comparator is
Port (data_in : in STD_LOGIC_VECTOR (3 downto 0);
reset : in STD_LOGIC;
clk : in std_logic :='0';
pwm_out : out STD_LOGIC);
end component;
-- signal clk :std_logic := '0';
signal clk_out : std_logic:= '0';
signal counter_out :std_logic_vector (9 downto 0):= "0000000000";
signal data_out : std_logic_vector(9 downto 0) := "0000000000";
-- signal data_in : std_logic_vector (3 downto 0) := "0000";
begin
clk64KHz_map : clk64KHz PORT MAP(clk,reset,clk_out);
counter_map : counter_10ms PORT MAP(clk_out,reset,counter_out);
decoder_map : decoder_4to10 PORT MAP(clk_out,data_in,data_out);
comparator_map : comparator PORT MAP (data_in,reset,clk_out,pwm_out);
end Behavioral;
-- /////////////////////////////////////////// end of top module///////////////////////////////////
你好plz帮助我得到正确的输出。我需要一个可变的占空比,使用一个频率为50Mhz到64KHz的变频器,使用10毫秒的rferesh周期的解码器。我得到v坏警告和错误
你能更详细地了解一下*错误的警告和错误*吗? – Filburt 2014-11-21 00:27:00
输入从不使用。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块并保留该子块的层次结构,则该端口将被保留并保持不连接状态。 警告:Xst:647 - 从不使用输入。如果该端口属于顶层块或属于子块,则该端口将保留并保持不连接状态 –
nsh
2014-11-21 11:23:30