GhostInABox
Junior Member level 2
Hi all ,
I am modelling the following code in ISE(12.4) and VIVADO , VIVADO(2014) elaborated schematic seems to give quite accurate results while i am struggling to see how ISE RTL schematic viewer is useful to the RTL designer at all ?
Here is the code for a FIR filter with 4 taps
Here is the VIVADO schematic
Here is the ISE RTL schematic for the same design
1. I would like to know from users of these tools if they ever found the ISE RTL schematic tool useful for complex designs ?
2. I just started to write VHDL code for FPGA's and find myself constantly going back and forth between the Schematic Design and Synthesis report to figure out if my VHDL was synthesized as expected. Is this typical of the normal design flow for FPGA's , I have seen guys who just write RTL and simulate on modelsim but don't seem to be looking at the synthesized constructs ( that often)
Just want to get an idea about the best flow to follow , if anyone would like to know what they do I can get some idea as i am not working in a commercial FPGA dev environment.
3. ISE XST does not seem to identify even output ports in the above design correctly , I am just wondering how people designed complexed design before VIVADO was released
Please let me know your thoughts
Thank you
I am modelling the following code in ISE(12.4) and VIVADO , VIVADO(2014) elaborated schematic seems to give quite accurate results while i am struggling to see how ISE RTL schematic viewer is useful to the RTL designer at all ?
Here is the code for a FIR filter with 4 taps
Code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
package temp is
type tapType is array (integer range <>) of signed(7 downto 0);
end package temp;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use work.temp.all;
entity FIR_SLOW is
port( clk : in std_logic;
reset : in std_logic;
input : in signed(7 downto 0);
output : out signed(7 downto 0));
end FIR_SLOW;
architecture Behavioral of FIR_SLOW is
signal tap : tapType(3 downto 0);
signal coefficent : tapType(3 downto 0);
type tapType_internal is array (integer range <>) of signed(15 downto 0);
signal tap_internal : tapType_internal(3 downto 0);
signal add3 : signed(17 downto 0);
begin
coefficent(0) <= to_signed(8,8);
coefficent(1) <= to_signed(10,8);
coefficent(2) <= to_signed(4,8);
coefficent(3) <= to_signed(6,8);
tap_proc:process(reset,clk)
begin
if(reset = '1') then
for i in 0 to 3 loop
tap(i) <= to_signed(0,8);
end loop;
output <= to_signed(0,8);
elsif(rising_edge(clk)) then
for i in 3 downto 1 loop
tap(i) <= tap(i-1);
end loop;
tap(0) <= input;
output <= add3(17 downto 10);
end if;
end process;
process(tap,coefficent)
begin
for i in 0 to 3 loop
tap_internal(i) <= tap(i) * coefficent(i);
end loop;
end process;
process(tap,tap_internal)
variable add1 : signed(16 downto 0);
variable add2 : signed(16 downto 0);
begin
add1 := resize(tap_internal(0),17) + resize(tap_internal(1),17);
add2 := resize(tap_internal(2),17) + resize(tap_internal(3),17);
add3 <= resize(add1,18) + resize(add2,18);
end process;
end Behavioral;
Here is the VIVADO schematic
Here is the ISE RTL schematic for the same design
1. I would like to know from users of these tools if they ever found the ISE RTL schematic tool useful for complex designs ?
2. I just started to write VHDL code for FPGA's and find myself constantly going back and forth between the Schematic Design and Synthesis report to figure out if my VHDL was synthesized as expected. Is this typical of the normal design flow for FPGA's , I have seen guys who just write RTL and simulate on modelsim but don't seem to be looking at the synthesized constructs ( that often)
Just want to get an idea about the best flow to follow , if anyone would like to know what they do I can get some idea as i am not working in a commercial FPGA dev environment.
3. ISE XST does not seem to identify even output ports in the above design correctly , I am just wondering how people designed complexed design before VIVADO was released
Please let me know your thoughts
Thank you