LFXP3C-4TN144C Lattice, LFXP3C-4TN144C Datasheet - Page 332
LFXP3C-4TN144C
Manufacturer Part Number
LFXP3C-4TN144C
Description
FPGA - Field Programmable Gate Array 3.1K LUTs 100 I/O 1.8/2.5/3.3V -4 Spd
Manufacturer
Lattice
Specifications of LFXP3C-4TN144C
Number Of Programmable I/os
100
Data Ram Size
55296
Supply Voltage (max)
3.465 V
Maximum Operating Temperature
+ 85 C
Minimum Operating Temperature
0 C
Mounting Style
SMD/SMT
Supply Voltage (min)
1.71 V
Package / Case
TQFP-144
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
LFXP3C-4TN144C
Manufacturer:
Lattice
Quantity:
135
Company:
Part Number:
LFXP3C-4TN144C
Manufacturer:
Lattice Semiconductor Corporation
Quantity:
10 000
Company:
Part Number:
LFXP3C-4TN144C-3I
Manufacturer:
TI
Quantity:
19
- Current page: 332 of 397
- Download datasheet (10Mb)
Lattice Semiconductor
Coding Styles for FSM
A finite state machine (FSM) is a hardware component that advances from the current state to the next state at the
clock edge. As mentioned in the Encoding Methodologies for State Machines section, the preferable scheme for
FPGA architectures is one-hot encoding. This section discusses some common issues encountered when con-
structing state machines, such as initialization and state coverage, and special case statements in Verilog.
General State Machine Description
Generally, there are two approaches to describe a state machine. One is to use one process/block to handle both
state transitions and state outputs. The other is to separate the state transition and the state outputs into two differ-
ent process/blocks. The latter approach is more straightforward because it separates the synchronous state regis-
ters from the decoding logic used in the computation of the next state and the outputs. This will make the code
easier to read and modify, and makes the documentation more efficient. If the outputs of the state machine are
combinatorial signals, the second approach is almost always necessary because it will prevent the accidental reg-
istering of the state machine outputs.
The following examples describe a simple state machine in VHDL and Verilog. In the VHDL example, a sequential
process is separated from the combinatorial process. In Verilog code, two always blocks are used to describe the
state machine in a similar way.
. . .
architecture lattice_fpga of dram_refresh is
begin
. . .
type state_typ is (s0, s1, s2, s3, s4);
signal present_state, next_state : state_typ;
-- process to update the present state
registers: process (clk, reset)
begin
end process registers;
-- process to calculate the next state & output
transitions: process (present_state, refresh, cs)
begin
end process transitions;
if (reset='1') then
elsif clk'event and clk='1' then
end if;
ras <= '0'; cas <= '0'; ready <= '0';
case present_state is
end case;
present_state <= s0;
present_state <= next_state;
when s0 =>
when s1 =>
when s2 =>
when s3 =>
when s4 =>
when others =>
VHDL Example for State Machine
ras <= '1'; cas <= '1'; ready <= '1';
if (refresh = '1') then next_state <= s3;
elsif (cs = '1') then next_state <= s1;
else next_state <= s0;
end if;
ras <= '0'; cas <= '1'; ready <= '0';
next_state <= s2;
ras <= '0'; cas <= '0'; ready <= '0';
if (cs = '0') then next_state <= s0;
else next_state <= s2;
end if;
ras <= '1'; cas <= '0'; ready <= '0';
next_state <= s4;
ras <= '0'; cas <= '0'; ready <= '0';
next_state <= s0;
ras <= '0'; cas <= '0'; ready <= '0';
next_state <= s0;
13-5
. . .
parameter s0 = 0, s1 = 1, s2 = 2, s3 = 3, s4 = 4;
reg [2:0] present_state, next_state;
reg ras, cas, ready;
// always block to update the present state
always @ (posedge clk or posedge reset)
begin
end
// always block to calculate the next state & outputs
always @ (present_state or refresh or cs)
begin
end
. . .
if (reset) present_state = s0;
else present_state = next_state;
next_state = s0;
ras = 1'bX; cas = 1'bX; ready = 1'bX;
case (present_state)
endcase
s0 : if (refresh) begin
s1 : begin
s2 : if (~cs) begin
s3 : begin
s4 : begin
end
else if (cs) begin
end
else begin
end
end
end
else begin
end
end
end
next_state = s3;
ras = 1'b1; cas = 1'b0; ready = 1'b0;
next_state = s1; ras = 1'b0; cas = 1'b1; ready = 1'b0;
next_state = s0; ras = 1'b1; cas = 1'b1; ready = 1'b1;
next_state = s2; ras = 1'b0; cas = 1'b0; ready = 1'b0;
next_state = s0; ras = 1'b1; cas = 1'b1; ready = 1'b1;
next_state = s2; ras = 1'b0; cas = 1'b0; ready = 1'b0;
next_state = s4; ras = 1'b1; cas = 1'b0; ready = 1'b0;
next_state = s0; ras = 1'b0; cas = 1'b0; ready = 1'b0;
HDL Synthesis Coding Guidelines
Verilog Example for State Machine
for Lattice Semiconductor FPGAs
Related parts for LFXP3C-4TN144C
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 62 I/O 1.8/2.5/3.3V -4 Spd
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 136 IO 1.8 /2.5/3.3V -4 Spd
Manufacturer:
Lattice
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 100 IO 1.8 /2.5/3.3V -4 Spd I
Manufacturer:
Lattice
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 136 IO 1.8 /2.5/3.3V -4 Spd I
Manufacturer:
Lattice
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTS 100 I/O
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTS 136 I/O
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTS 62 I/O
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTS 62 I/O
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 62 IO 1.8/ 2.5/3.3V -3 Spd I
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA - Field Programmable Gate Array 3.1K LUTs 100 I/O 1.8/2.5/3.3V IND
Manufacturer:
Lattice
Datasheet:
Part Number:
Description:
FPGA, 1.8V FLASH, INSTANT ON, SMD
Manufacturer:
LATTICE SEMICONDUCTOR
Datasheet:
Part Number:
Description:
FPGA LatticeXP Family 3000 Cells 320MHz 130nm (CMOS) Technology 1.8V/2.5V/3.3V 208-Pin PQFP Tray
Manufacturer:
LATTICE SEMICONDUCTOR
Datasheet:
Part Number:
Description:
FPGA LatticeXP Family 3000 Cells 320MHz 130nm (CMOS) Technology 1.8V/2.5V/3.3V 144-Pin TQFP Tray
Manufacturer:
LATTICE SEMICONDUCTOR
Datasheet:
Part Number:
Description:
FPGA LatticeXP Family 3000 Cells 360MHz 130nm (CMOS) Technology 1.8V/2.5V/3.3V 100-Pin TQFP Tray
Manufacturer:
LATTICE SEMICONDUCTOR
Datasheet:
Part Number:
Description:
FPGA LatticeXP Family 3000 Cells 360MHz 130nm (CMOS) Technology 1.8V/2.5V/3.3V 144-Pin TQFP Tray
Manufacturer:
LATTICE SEMICONDUCTOR
Datasheet: