提问人:Didier Noël 提问时间:11/3/2023 更新时间:11/3/2023 访问量:48
10 位 ADC 接口 mit VHDL
10 Bits ADC Interface mit VHDL
问:
非常感谢您的帮助。我正在尝试编写VHDL代码 对于我的 10 位 ADC。ADC有两个输入, 然后通过时钟的上升沿和下降沿多路复用到输出。 是多路复用的。我想问一下这个,ADC连接到信号 信号发生器,所以我想知道输入端口应该是什么样子 输入端口应如下所示(向量或仅std_logic)。由于ADC输出 连接到 Pynq Z2 板的树莓派,我想知道 知道如何编写XDC文件。我已经很期待了 为您提供指导性的帮助。
此致敬意
请帮我编程这个ADC
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 01.11.2023 20:17:11
-- Design Name:
-- Module Name: ADC_Interface_conv_file - 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;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx leaf cells in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity ADC_conv is
Port (
Reset : in std_logic; -- Reset signal
wr_en : in std_logic; -- start signal from FSM to convert data
ADC_inphase : in std_logic_vector(9 downto 0);--receiver side i/p
ADC_quadrature : in std_logic_vector(9 downto 0); --receiver side i/p
-- Dout1 : out std_logic_vector(9 downto 0);--receiver side 0/p
Dout : out std_logic_vector(9 downto 0);--receiver side o/p
Clock_out : out std_logic ; -- clock output
-- ADC_CLK2 : out std_logic;
enable_out : out std_logic; -- convertion done signal
--Reset : IN STD_LOGIC;
Clock : IN STD_LOGIC -- clock signal input
);
end ADC_conv;
architecture Behavioral of ADC_conv is
shared variable temp1, temp2 : std_logic_vector(9 downto 0) ;
begin
Convertion : Process (Clock, Reset, wr_en, ADC_inphase) is
begin
if Reset = '1' then
Dout <= ( others => '0' ) ;
enable_out <= '0' ;
Clock_out <= '0' ;
else if rising_edge(Clock) then
if (wr_en = '1') then
temp1 := ADC_inphase ;
else
temp1 := (others => '0');
end if ;
end if ;
end if ;
end process Convertion ;
Convertion_quadrature : Process (Clock, Reset, wr_en, ADC_quadrature) is
begin
if Reset = '1' then
Dout <= ( others => '0' ) ;
enable_out <= '0' ;
Clock_out <= '0' ;
else if falling_edge(Clock) then
if (wr_en = '1') then
temp2 := ADC_quadrature ;
else
temp2 := (others => '0');
end if ;
end if ;
end if ;
end process Convertion_quadrature ;
Dout <= temp1 when Clock = '1' else temp2 ;
end Behavioral;
答: 暂无答案
上一个:几分钟后多流录制速度下降
下一个:使用 C++ 提高硬件使用率
评论