entity ipic_if is
port (
....
prdata : out std_logic_vector(0 to 31);
....
);
.....
READ_REGISTER_PROCESS : process(clk)
begin
if (clk'event and clk = '1') then
if reset = '1' then
prdata <= (others => '0');
end if;
else
case paddr(8 downto 2) is
when "1000001" => prdata <= Dout;
when "1000011" => prdata <= (Z(0 to 26) & test(0 to 4));
...
when others => prdata <= (others => '0');
end case;
end if;
end process READ_REGISTER_PROCESS;
zapis :process(WRI,CLK2)
variable i,j : integer:= 0;
begin
if rising_edge(WRI) then
j := 1;
ADRS <= (others => '0');
--end if;
elsif CLK2 = '1' and j = 1 then
i := i +1;
if i < 40000 then
DT2 <= "101";
ADRS <= ADRS + 1;
else
i := 0;
j := 0;
end if;
elsif CLK = '1' then
ADRS <= ADRS + 1;
end if;
if ADRS = 39999 and CLK = '1' then
ADRS <= (others => '0');
end if;
end process;
zapis :process(CLK2)
variable adres : STD_LOGIC_VECTOR (15 downto 0):=(others => '0');
variable i,j : integer:= 0;
begin
if CLK2 = '1' and WRI = '1' and WRI'event then
j := 1;
adres := (others => '0');
end if;
if CLK2 = '1' and j = 1 then
i := i +1;
if i < 10 then
DT2 <= "101";
adres := adres +1 ;
else
i := 0;
j := 0;
end if;
end if;
if CLK2 = '1' then
adres := adres + 1;
end if;
if adres = 10 and CLK = '1' then
adres := (others => '0');
end if;
ADRS <= adres;
end process;
process(clk, reset)
begin
if reset = '1' then
--do your reset here
elsif rising_edge(clk) then
--All synchronous logic goes here
end if;
--Dont put logic here or inside the above if conditions - it probably wont be synthesisable or do what you expect
end process;
process (maxmin_out_sig, reset)
begin
if (reset='1') then
PWM_out_sig<='0';
elsif (rising_edge (maxmin_out_sig)) then
PWM_out_sig<=PWM_out_sig;
else
PWM_out_sig<=not(PWM_out_sig);
end if;
end process;
else
I_out<= 0;
Q_out<= 0;
Hi !
I'm new to VHDL ... & the same problem !
cand anyone help me ?
code :
architecture Behavioral of qam is
begin
process(clk,Input)
begin
if rising_edge(clk) then
-- wait until (clk'event and clk='1');
case Input is
when "00" =>
I_out <= 1;
Q_out <= 1;
when "01" =>
I_out <= -1;
Q_out <= 1;
when "10" =>
I_out <= 1;
Q_out <= -1;
when "11" =>
I_out <= -1;
Q_out <= -1;
when others=>
I_out<= 0;
Q_out<= 0;
end case;
else
I_out<= 0;
Q_out<= 0;
end if;
end process;
end Behavioral;
Signal Q_out cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release.
thanks in advance
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?