Google
 

VLSI?

There just isn't a great source of detailed VLSI/DIGITAL information out there. If I actually keep this up, this should be it. However, unless people take an active interest and submit some ideas, tutorials, examples, may be some cores etc., it may die very soon. So, please let me know what you think and what you're working on. I'd love to post people's contributions.

What's On the Site ?
I have a plan to give the konowledge of VLSI. This is not a private web site. i will allow the public to modify the tutorial . if you got good knowledge,you send to us. This is really a site for ASIC/DIGITAL beginners. My interests run mainly to digital design and how to apply that to ASIC/FPGA/Board design and how to verify them. So there is a definite bias towards that on this site. However, I would be very pleased to post information concerning embedded systems, analog design, VLSI. You have to tell me. This site is very useful for enginering students. We have a plan to publish seminar topics and projects.I will give the path of the software.

The Future...
Now i just started only. So i want the opinion of the viewers. Which type of site you like. I have a plan to put a latest topics. While only some of the sections on this site have useful or interesting things at the moment, I hope that they will fill out quickly. Provided I get some positive response, things should be added on a regular basis. Also, I'd like to set up a Frequently asked questions for all the sections...may be trying something new.. ..time will decide.

What's New ?
SystemVerilog tutorial is the latest topics. Mainly it contain main other topics that is Assertion. Now i start to collects the data, it is in final stages.

Sunday, January 27, 2008

VHDL Program_blackjack

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity blackjack is port(card_out,green,red:out bit;
score:buffer std_logic_vector(7 downto 0);
data,d_data:in std_logic_vector(7 downto 0);
rst,newcard,finish: in bit; clk:in bit);
end blackjack;
architecture blackstruct of blackjack is
type state is (s0, s1, s2,s3, s4, s5, s6, s7);
signal p_state, n_state:state;
begin clock:
process(rst,clk)
begin
if rst='1' then p_state<=s0;
else if (clk'event and clk='1')then p_state<=n_state;
end if;
end if;
end process clock;
present: process(p_state)
--variable score_buf: std_logic_vector(7 downto 0);
begin
case p_state is when s0 => card_out<='0';
green<='0'; red<='0';
score<="00000000";
n_state<=s1;
when s1 => card_out<='0';
if newcard<='1' then n_state<=s2; else n_state<=s1;
end if;
when s2=> card_out<='1'; n_state<=s3;
when s3=> score<=score+data; n_state<=s4;
when s4=> if finish='1' then n_state<=s5;
else n_state<=s1;
end if;
when s5=> if score>d_data then green<='1';
else red<='1';
end if; n_state<=s0;
when others=> score <="11111111"; end case;
end process present;
end architecture blackstruct;

Friday, October 26, 2007

VHDL

VHDL was originally developed at the behest of the US Department of Defense in order to document the behavior of the ASICs that supplier companies were including in equipment. That is to say, VHDL was developed as an alternative to huge, complex manuals which were subject to implementation-specific details.The idea of being able to simulate this documentation was so obviously attractive that logic simulators were developed that could read the VHDL files. The next step was the development of logic synthesis tools that read the VHDL, and output a definition of the physical implementation of the circuit. Modern synthesis tools can extract RAM, counter, and arithmetic blocks out of the code, and implement them according to what the user specifies. Thus, the same VHDL code could be synthesized differently for lowest cost, highest power efficiency, highest speed, or other requirements.VHDL borrows heavily from the Ada (programming language) in both concepts (for example, the slice notation for indexing part of a one-dimensional array) and syntax. VHDL has constructs to handle the parallelism inherent in hardware designs, but these constructs (processes) differ in syntax from the parallel constructs in Ada (tasks). Like Ada, VHDL is strongly-typed and case insensitive. There are many features of VHDL which are not found in Ada, such as an extended set of Boolean operators including nand and nor, in order to represent directly operations which are common in hardware. VHDL also allows arrays to be indexed in either direction (ascending or descending) because both conventions are used in hardware, whereas Ada (like most programming languages) provides ascending indexing only. The reason for the similarity between the two languages is that the Department of Defense required as much as possible of the syntax to be based on Ada, in order to avoid re-inventing concepts that had already been thoroughly tested in the development of Ada.The initial version of VHDL, designed to IEEE standard 1076-1987, included a wide range of data types, including numerical (integer and real), logical (bit and boolean), character and time, plus arrays of bit called bit_vector and of character called string.A problem not solved by this edition, however, was "multi-valued logic", where a signal's drive strength (none, weak or strong) and unknown values are also considered. This required IEEE standard 1164, which defined the 9-value logic types: scalar std_ulogic and its vector version std_ulogic_vector.The second issue of IEEE 1076, in 1993, made the syntax more consistent, allowed more flexibility in naming, extended the character type to allow ISO-8859-1 printable characters, added the xnor operator, etc.Minor changes in the standard (2000 and 2002) added the idea of protected types (similar to the concept of class in C++) and removed some restrictions from port mapping rules.In addition to IEEE standard 1164, several child standards were introduced to extend functionality of the language. IEEE standard 1076.2 added better handling of real and complex data types. IEEE standard 1076.3 introduced signed and unsigned types to facilitate arithmetical operations on vectors. IEEE standard 1076.1 (known as VHDL-AMS) provided analog and mixed-signal circuit design extensions.Some other standards support wider use of VHDL, notably VITAL (VHDL Initiative Towards ASIC Libraries) and microwave circuit design extensions.In June 2006, VHDL Technical Committee of Accellera (delegated by IEEE to work on next update of the standard) approved so called Draft 3.0 of VHDL-2006. While maintaining full compatibility with older versions, this proposed standard provides numerous extensions that make writing and managing VHDL code easier. Key changes include incorporation of child standards (1164, 1076.2, 1076.3) into the main 1076 standard, an extended set of operators, more flexible syntax of 'case' and 'generate' statements, incorporation of VHPI (interface to C/C++ languages) and a subset of PSL (Property Specification Language). These changes should improve quality of synthesizable VHDL code, make testbenches more flexible, and allow wider use of VHDL for system-level descriptions.