Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Archi-feb 07


Published on

Published in: Business, Education
  • Be the first to comment

  • Be the first to like this

Archi-feb 07

  1. 1. BEHAVIOURAL <ul><li>CONCURENT </li></ul><ul><li>statements execute in parallel, </li></ul><ul><li>and therefore, their textual order of appearance NOT MATTERS </li></ul>
  2. 2. Entity Declaration <ul><li>describes the external interface of the entity </li></ul><ul><li>name of the entity, </li></ul><ul><li>the names of interface ports, </li></ul><ul><li>their mode (i.e., direction), and the type of ports </li></ul>
  3. 3. Syntax <ul><li>entity entity-name is </li></ul><ul><li>[ port </li></ul><ul><li>( list-of-interface-port-names-and-their-types) ; ] </li></ul><ul><li>[ entity-item-declarations ] </li></ul>
  4. 4. Entity declaration entity AOI is port (A, B, C, D: in BIT; Z: out BIT); end AOI;
  5. 5. Architecture Body <ul><li>architecture architecture-name of entity-name is </li></ul><ul><li>[ architecture-item-declarations ] </li></ul><ul><li>begin </li></ul><ul><li>concurrent-statements ; these are —> </li></ul><ul><li>process-statement </li></ul><ul><li>block-statement </li></ul><ul><li>concurrent-procedure-call </li></ul><ul><li>concurrent-assertion-statement </li></ul><ul><li>concurrent-signal-assignment-statement </li></ul><ul><li>component-instantiation-statement </li></ul><ul><li>generate-statement </li></ul><ul><li>end [ architecture-name ] ; </li></ul>
  6. 6. Entity declaration entity AOI is port (A, B, C, D: in BIT; Z: out BIT); end AOI;
  7. 7. CODE <ul><li>architecture AOI_CONCURRENT of AOI is </li></ul><ul><li>begin </li></ul><ul><li>Z <= not ( (A and B) or (C and D) ); </li></ul><ul><li>end AOI_CONCURRENT; </li></ul><ul><li>architecture AOI_SEQUENTIAL of AOI is </li></ul><ul><li>begin </li></ul><ul><li>process (A, B, C, D) </li></ul><ul><li>variable TEMPI ,TEMP2: BIT; </li></ul><ul><li>begin </li></ul><ul><li>TEMP1 := A and B; -- statement 1 </li></ul><ul><li>TEMP2:=C and D; --statement 2 </li></ul><ul><li>TEMP1 := TEMP1 or TEMP2; -- statement 3 </li></ul><ul><li>Z<= not TEMP1; --statement 4 </li></ul><ul><li>end process; </li></ul><ul><li>end AOI_SEQUENTIAL; </li></ul>
  8. 8. Process Statement <ul><li>A process statement contains sequential statements that describe the functionality of a portion of an entity in sequential terms </li></ul>
  9. 9. Process Statement <ul><li>process-label : ] process [ ( sensitivity-list ) ] </li></ul><ul><li>[ process-item-declarations ] </li></ul><ul><li>begin </li></ul><ul><li>sequential-statements; these are -> </li></ul><ul><li>variable-assignment-statement </li></ul><ul><li>signal-assignment-statement </li></ul><ul><li>wait-statement </li></ul><ul><li>if-statement </li></ul><ul><li>case-statement </li></ul><ul><li>loop-statement </li></ul><ul><li>null-statement </li></ul><ul><li>exit-statement </li></ul><ul><li>next-statement </li></ul><ul><li>assertion-statement </li></ul><ul><li>procedure-call-statement </li></ul><ul><li>return-statement. </li></ul><ul><li>end process [ process-label] ; </li></ul>signals that the process is sensitive to Sequential execution Under sensitivity list
  10. 10. Variable Assignment Statement <ul><li>Variables can be declared and used inside a process statement </li></ul><ul><li>variable-object := expression ; </li></ul><ul><li>process (A) </li></ul><ul><li>variable AMAR := 0; </li></ul><ul><li>begin </li></ul><ul><li>AMAR := AMAR+1; </li></ul><ul><li>end process; </li></ul>
  11. 11. Signal Assignment Statement <ul><li>signal-object <= expression [ after delay-value ] ; </li></ul><ul><li>A signal assignment statement can appear within a process or outside of a process </li></ul><ul><li>When a signal assignment statement is executed, the value of the expression is computed and this value is scheduled to be assigned to the signal after the specified delay </li></ul><ul><li>PAR <= PAR xor DIN after 12 ns </li></ul>
  12. 12. Wait Statement <ul><li>PROCESS STATEMENT-it always suspends after executing the last sequential statement in the process </li></ul><ul><li>Alternate- WAIT STATEMENT </li></ul>
  13. 13. EXAMPLE <ul><li>wait on sensitivity-list; </li></ul><ul><li>wait until boolean-expression ; </li></ul><ul><li>wait for time-expression ; </li></ul><ul><li>wait on A, B, C; -- statement 1 </li></ul><ul><li>wait until (A = B); -- statement 2 </li></ul><ul><li>wait for 10ns; -- statement 3 </li></ul>
  14. 14. If Statement <ul><li>if boolean-expressionthen </li></ul><ul><li>sequential-statements </li></ul><ul><li>[ elsif boolean-expression then -- elsif clause; if stmt can have 0 or </li></ul><ul><li>sequential-statements ] -- more elsif clauses. </li></ul><ul><li>[ else -- else clause. </li></ul><ul><li>sequential-statements ] </li></ul><ul><li>end if; </li></ul>if SUM <= 100 then -- This is a less-than-or-equal-to operator. SUM := SUM +10; end if
  15. 15. <ul><li>Thanks </li></ul>