现在有一个pcm采编器的程序,但是参数不符合要求,比如帧同步码、帧长和码率,要怎么改啊
1条回答 默认 最新
- puzzle55 2017-05-06 15:22关注
--顶层设计文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity PCM is
port(FRHB,FRLB:in std_logic_vector(7 downto 0);
DATA: in std_logic_vector(7 downto 0);
clk,clr : in std_logic;
DATAOUT:out std_logic;
ADRESS:out std_logic_vector(5 downto 0);
ADC:out std_logic;
DIGITAL:out std_logic);
end PCM;architecture behave of PCM is
component mux24_8b
PORT(FRHB:in std_logic_vector(7 downto 0);--同步字的高位
FRLB: in std_logic_vector(7 downto 0);--同步字的低位
DATA: in std_logic_vector(7 downto 0);--数据
A,B: in std_logic;--选择控制位,B为高位
Y:out std_logic_vector(7 downto 0));
end component;component mux8_1b PORT(D: in std_logic_vector(7 downto 0); a,b,c: in std_logic; y:out std_logic); end component; component D_chufa PORT(CLK: in std_logic; D: in std_logic; Q: out std_logic); end component; component freq_div PORT(CLK:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC); end component; component cnt3--位计数器 port(clk,clr:in std_logic; Y1,Y2,Y3 :out std_logic); end component; component S_cnt--字计数器 port(clk,clr:in std_logic; count:out std_logic_vector(5 downto 0));--64个通道 end component; component dec6to4 --译码器 port(adr:in std_logic_vector(5 downto 0);--帧中字的地址 B,C,D,E:out std_logic);--B,C为同步字和数据的选择信号,C为高位 --D为模拟通道片选,E为数字通道片选 end component; --模块内部各个模块之间连接信号 signal dec6tomux24A,dec6tomux24B : std_logic; --译码器和24选8数据选择器之间的信号 signal mux24tomux8: std_logic_vector(7 downto 0);--24选8数据选择器和8选1数据选择器之间的信号 signal cnt3tomux8Y1,cnt3tomux8Y2,cnt3tomux8Y3 : std_logic;--位计数器和8选1数据选择器之间的信号 signal mux8toDFF: std_logic;--8选1数据选择器和D触发器之间的信号 signal dvfclk:std_logic;--分频之后的信号 signal scntTodec:std_logic_vector(5 downto 0);--位计数器和译码器之间的信号 begin U1:mux24_8b port map(FRHB=>FRHB,FRLB=>FRLB,DATA=>DATA,A=>dec6tomux24A, B=>dec6tomux24B,Y=>mux24tomux8); U2:mux8_1b port map(D=>mux24tomux8,a=>cnt3tomux8Y1,b=>cnt3tomux8Y2, c=>cnt3tomux8Y3,y=>mux8toDFF); U3:D_chufa port map(CLK=>dvfclk,D=>mux8toDFF,Q=>DATAOUT); U4:freq_div port map(CLK=>clk,CLKOUT=>dvfclk); U5:cnt3 port map(clk=>dvfclk,clr=>clr,Y1=>cnt3tomux8Y1,Y2=>cnt3tomux8Y2,Y3=>cnt3tomux8Y3); U6:S_cnt port map(clk=>cnt3tomux8Y3,clr=>clr,count=>scntTodec);--用位计数器来触发字计数器 U7:dec6to4 port map(adr=>scntTodec,B=>dec6tomux24A,C=>dec6tomux24B, D=>ADC,E=>DIGITAL); ADRESS<=scntTodec;
end behave;
解决 无用评论 打赏 举报