The document describes a project to design a microcontroller that supports the instruction set of the Motorola 68HC12 microcontroller using VHDL. Key aspects of the project include:
- Implementing the 68HC12 instruction set and addressing modes on an FPGA.
- Testing the design through simulation, synthesis, place and route, and finally programming the designed FPGA board.
- Verifying the results by comparing the functionality to the original 68HC12 microcontroller board.
The document describes the implementation of a 16-bit microprocessor core called "MIB-16" using VHDL. It discusses designing the various components of the microprocessor like the ALU, control unit, registers etc. separately in VHDL, simulating them and then implementing the entire design on an FPGA. The microprocessor can access 64KB of memory and execute instructions like addition, subtraction etc. VHDL allows for modeling digital systems at different levels of abstraction and the microprocessor design demonstrates its use for designing an entire processor.
The document discusses microprocessors, their architecture, instructions, operations, interfacing and the 8085 and 8086 microprocessors. It provides details on the functional blocks, registers, addressing modes, procedures, calling conventions, and stack usage of the 8086 microprocessor. It also describes various assembler directives, operators, and concepts like logical segments, procedures, and passing parameters in registers vs memory for procedures.
The document discusses microprocessors and the 8085 microprocessor. It provides details on:
1) The internal architecture and components of microprocessors and the 8085 microprocessor.
2) The different types of operations microprocessors can perform including internal data operations, microprocessor initiated operations, and peripheral initiated operations.
3) The addressing modes, instruction set, registers, and instruction types/formats of the 8085 microprocessor.
The x86 instruction set provides a complex array of operation types to optimize machine code translation of high-level languages. These include data movement, arithmetic, logical, control transfer, string, high-level language support, and SIMD instructions. The x86 also defines status flags and condition codes that are used for conditional jumps and other conditional operations. Specialized x86 instructions help support procedure calls, returns, and memory management functions.
The document discusses instruction set architecture (ISA), which is part of computer architecture related to programming. It defines the native data types, instructions, registers, addressing modes, and other low-level aspects of a computer's operation. Well-known ISAs include x86, ARM, MIPS, and RISC. A good ISA lasts through many implementations, supports a variety of uses, and provides convenient functions while permitting efficient implementation. Assembly language is used to program at the level of an ISA's registers, instructions, and execution order.
The document discusses the major components and organization of the central processing unit (CPU). It describes the CPU as consisting of storage components like registers and flags, execution components like the arithmetic logic unit (ALU) for arithmetic and logical operations, transfer components like the bus, and control components like the control unit. It provides details on register organization, bus organization, the operation of the control unit, the ALU, instruction formats, addressing modes, and different types of CPU organization including single accumulator, general register, and stack organizations.
This document discusses assembler programming for the Atmega328P microcontroller. It begins by explaining the language options for programming the microcontroller, including higher-level languages like C/C++ and assembly language. It describes why learning assembly language is important, particularly for understanding the microcontroller's architecture and writing optimized code. The facilities needed for assembly language programming are outlined, including a text editor, assembler, debugger/simulator, and programmer. An overview of the Atmega328P's instruction set is provided, including classifications and addressing modes. Examples of several common instructions like LDI, ADD, MOV, COM, and JMP are described.
This document introduces system software and the Simplified Instructional Computer (SIC) architecture. It discusses the SIC's memory, registers, data formats, instruction formats, addressing modes, instruction set, and input/output. Examples of SIC assembly language programs are provided to demonstrate various operations like data movement, arithmetic, looping, indexing, and subroutines. It also introduces an extended version, SIC/XE, which has additional registers and supports floating-point data and new instruction formats.
The document describes the implementation of a 16-bit microprocessor core called "MIB-16" using VHDL. It discusses designing the various components of the microprocessor like the ALU, control unit, registers etc. separately in VHDL, simulating them and then implementing the entire design on an FPGA. The microprocessor can access 64KB of memory and execute instructions like addition, subtraction etc. VHDL allows for modeling digital systems at different levels of abstraction and the microprocessor design demonstrates its use for designing an entire processor.
The document discusses microprocessors, their architecture, instructions, operations, interfacing and the 8085 and 8086 microprocessors. It provides details on the functional blocks, registers, addressing modes, procedures, calling conventions, and stack usage of the 8086 microprocessor. It also describes various assembler directives, operators, and concepts like logical segments, procedures, and passing parameters in registers vs memory for procedures.
The document discusses microprocessors and the 8085 microprocessor. It provides details on:
1) The internal architecture and components of microprocessors and the 8085 microprocessor.
2) The different types of operations microprocessors can perform including internal data operations, microprocessor initiated operations, and peripheral initiated operations.
3) The addressing modes, instruction set, registers, and instruction types/formats of the 8085 microprocessor.
The x86 instruction set provides a complex array of operation types to optimize machine code translation of high-level languages. These include data movement, arithmetic, logical, control transfer, string, high-level language support, and SIMD instructions. The x86 also defines status flags and condition codes that are used for conditional jumps and other conditional operations. Specialized x86 instructions help support procedure calls, returns, and memory management functions.
The document discusses instruction set architecture (ISA), which is part of computer architecture related to programming. It defines the native data types, instructions, registers, addressing modes, and other low-level aspects of a computer's operation. Well-known ISAs include x86, ARM, MIPS, and RISC. A good ISA lasts through many implementations, supports a variety of uses, and provides convenient functions while permitting efficient implementation. Assembly language is used to program at the level of an ISA's registers, instructions, and execution order.
The document discusses the major components and organization of the central processing unit (CPU). It describes the CPU as consisting of storage components like registers and flags, execution components like the arithmetic logic unit (ALU) for arithmetic and logical operations, transfer components like the bus, and control components like the control unit. It provides details on register organization, bus organization, the operation of the control unit, the ALU, instruction formats, addressing modes, and different types of CPU organization including single accumulator, general register, and stack organizations.
This document discusses assembler programming for the Atmega328P microcontroller. It begins by explaining the language options for programming the microcontroller, including higher-level languages like C/C++ and assembly language. It describes why learning assembly language is important, particularly for understanding the microcontroller's architecture and writing optimized code. The facilities needed for assembly language programming are outlined, including a text editor, assembler, debugger/simulator, and programmer. An overview of the Atmega328P's instruction set is provided, including classifications and addressing modes. Examples of several common instructions like LDI, ADD, MOV, COM, and JMP are described.
This document introduces system software and the Simplified Instructional Computer (SIC) architecture. It discusses the SIC's memory, registers, data formats, instruction formats, addressing modes, instruction set, and input/output. Examples of SIC assembly language programs are provided to demonstrate various operations like data movement, arithmetic, looping, indexing, and subroutines. It also introduces an extended version, SIC/XE, which has additional registers and supports floating-point data and new instruction formats.
This document provides an overview of the basic computer organization and design being covered in the lecture. It describes the components of the basic computer including memory, processor registers, instruction formats, addressing modes, and the instruction set. The basic computer uses a common bus system to connect its registers. It has three types of instructions - memory reference, register reference, and input/output. The control unit translates instructions into microoperations to implement them.
This document provides an overview of various types of registers used in microprocessors. It discusses system registers, status registers, pointer registers, index registers, hardware registers, instruction registers, control registers, memory management registers, segment registers, shift registers, stack registers, test registers, task registers, accumulator registers, EFLAGS registers, base address registers, and other specialized registers. The document aims to describe the purpose and function of different categories of registers within microprocessors.
The document discusses microprocessors, microcontrollers, and the 8085 microprocessor. It defines a microprocessor as a programmable device that performs arithmetic and logical operations on numbers according to a stored program. A microcontroller is similar but has memory and I/O functions integrated on a single chip. The 8085 is an 8-bit microprocessor with 40 pins that can address 64KB of memory and has 74 instructions across 5 addressing modes. It uses multiplexed address and data lines to reduce pins.
The document provides an overview of central processor organization. It discusses the major components of a CPU including storage components like registers and flags, execution components like the arithmetic logic unit, transfer components like buses, and control components like the control unit. It describes different types of CPU organization including single accumulator, general register, and stack organizations. It also covers various aspects of CPU organization like register organization, instruction formats, addressing modes, data transfer and manipulation instructions, program control instructions, and the role of flags and the processor status word.
This document provides an introduction to the 8085 microprocessor. It discusses the basic concepts of microprocessors including the internal architecture consisting of an ALU, control unit, and registers. It describes the different types of memory including RAM, ROM, and registers. It then focuses specifically on the features of the 8085 microprocessor, including that it is an 8-bit processor with 40 pins that can access 64KB of memory. The document outlines the instruction set categories and provides examples of instructions for data transfer between memory and registers.
This document provides an overview of computer organization and architecture. It discusses how a general purpose computer bridges the gap between desired behaviors and underlying electronic devices. The Von Neumann architecture is described as a model for computer design consisting of memory, ALU, control unit, and I/O. The key components of a computer - memory subsystem, ALU, control unit, and I/O subsystem - are then explained in more detail. Finally, the document outlines how instructions are fetched, decoded and executed in a Von Neumann architecture computer to implement programs stored in memory.
This document provides an introduction to assembly language programming and the 8080/8085 microprocessors. It describes the assembler and its functions, gives an overview of the 8080/8085 hardware and instruction set, and notes some differences in programming for the 8085 versus the 8080. The document is intended as both a reference and instructional guide for assembly language programmers.
The CPU is made up of 3 major parts: the register set, control unit, and arithmetic logic unit. The register set stores intermediate values during program execution. The control unit generates control signals and selects operations for the ALU. The ALU performs arithmetic and logic operations. Computer architecture includes instruction formats, addressing modes, instruction sets, and CPU register organization. Registers are organized in a bus structure to efficiently transfer data and perform microoperations under control of the control unit. Common instruction fields are the operation code, address fields, and addressing mode fields. Instructions can be classified by the number of address fields as zero-address, one-address, two-address, or three-address instructions. Common addressing modes specify how operands
The document discusses JTAG and boundary scan testing standards. It describes how JTAG allows complete control and observation of boundary pins via software to enable in-circuit testing without bed-of-nails equipment. Boundary scan Flash programming has advantages over other techniques like limited impact on design and ability to program in field. However, programming time is affected by factors like scan operations, path length, clock frequency, data amount, and burn time. The document also discusses AC97 audio codec standards and the JPEG image compression standard.
The document describes a microprocessor, which is an integrated circuit that contains the logic circuitry of a central processing unit on a single chip. It discusses the main components of a microprocessor, including the arithmetic logic unit, register array, control unit, and how they function together. It provides examples of applications for microprocessors across various fields like electronics, mechanical, electrical, medical, computers, and domestic devices. It also includes detailed diagrams and explanations of the architecture, bus structure, registers, flags, and pin descriptions of the specific 8085 microprocessor.
This document discusses the ARM instruction set and ARM-based microcontrollers. It describes load-store instructions for single and multiple register data transfer. It also covers branch instructions and theThumb instruction set. The document then discusses the LPC2148 ARM-based microcontroller, including its architecture, memory mapping, and peripherals. It notes the microcontroller has flash memory for code/data storage and SRAM for volatile storage, and peripherals are controlled via register access. Finally, it lists some hardware and software tools used for labs.
This document provides an introduction to a course on computer organization and assembly language. It will cover the main hardware components of a computer system, including memory, the CPU, and I/O ports. It will also discuss how instructions are executed in the fetch-execute cycle. Students will learn assembly language and how it maps to the underlying machine language understood by the CPU. They will be assessed through quizzes, assignments, a project, and a final exam.
INTEL x86 AND ARM DATA TYPES
⦁ Are instructions set architecture
⦁ Change code into instructions a processor can understand and execute.
⦁ Determines which operating systems and apps to run.
This document provides information about the Intel 8085 microprocessor. It includes sections on the architecture, system bus, programming mode, addressing modes, instruction set classification, instruction format, and sample programs. The architecture section describes the main components of the 8085 including the control unit, ALU, registers, program counter, stack pointer, and memory organization. It also explains the roles of the accumulator, flags, and general purpose registers. The system bus section outlines the address bus, data bus, and control bus used to communicate with external memory and I/O devices.
The document discusses different types of programmable logic devices including CPLDs and FPGAs. It provides details on the architecture and workings of the Xilinx XC9500 CPLD family and Xilinx XC4000 FPGA family. The XC9500 CPLD uses function blocks containing macrocells with programmable AND and OR arrays. The XC4000 FPGA uses configurable logic blocks containing function generators, flip-flops and programmable multiplexers to implement logic functions. Both devices use programmable interconnects to route signals between blocks.
Here are the key steps for how SPI works:
1. The master device initiates the data transfer by selecting a slave device using the chip select (CS) line. This brings the slave device online.
2. The master outputs the clock signal (SCLK) which is used by both the master and slave devices to synchronize the data transfer.
3. The master sends data on the MOSI (master out, slave in) line which the slave receives on its SDI pin in sync with the clock.
4. In parallel, the slave sends data on the MISO (master in, slave out) line which the master receives on its SDO pin, also in sync with the clock.
This document discusses embedded processors, including the VIA C3 processor and PowerPC MPC601 processor. It provides details on the architecture and design of the VIA C3 processor, including its instruction pipeline, instruction decode unit, branch prediction, integer unit, floating point unit, MMX and 3D unit. It notes some key characteristics of the VIA C3 such as its use of the x86 instruction set, pipelined design, and higher power consumption due to complexity. The document then briefly introduces the PowerPC MPC601 processor.
The 8085 is an 8-bit microprocessor that operates on a single +5V power supply. It has features like 16 address lines allowing access to 64KB of memory, 8 I/O address lines, and ability to operate at up to 3MHz clock frequency. The architecture of the 8085 includes registers like accumulator, flag, and program counter registers, an ALU, and functional blocks for instruction decoding, addressing, interrupts, and I/O. It has a 40-pin package with connections for power, data/address bus, control signals, interrupts, serial I/O, DMA and reset.
El documento propone diseñar un sistema de información (IT) para gestionar equipos médicos a través de módulos. El módulo de administración permitiría controlar usuarios y roles. El módulo de registro almacenaría información de equipos, consumibles y repuestos. El módulo de mantenimiento controlaría inspecciones preventivas, correctivas y cronogramas. El sistema mejoraría el control y registro para ofrecer servicios médicos de calidad.
El documento propone diseñar un sistema de información (IT) para gestionar equipos médicos a través de módulos. El módulo de administración permitiría controlar usuarios y roles. El módulo de registro almacenaría información de equipos, consumibles y repuestos. El módulo de mantenimiento controlaría inspecciones preventivas, correctivas y cronogramas. El sistema mejoraría el control y registro para ofrecer servicios médicos de calidad.
Este documento explica diferentes medidas de dispersión o variabilidad estadística como el rango, desviación típica, varianza y coeficiente de variación. Define cada medida, describe sus características y utilidades para cuantificar la separación de valores en una distribución y evaluar qué tan dispersos o similares están los datos.
This document provides an overview of the basic computer organization and design being covered in the lecture. It describes the components of the basic computer including memory, processor registers, instruction formats, addressing modes, and the instruction set. The basic computer uses a common bus system to connect its registers. It has three types of instructions - memory reference, register reference, and input/output. The control unit translates instructions into microoperations to implement them.
This document provides an overview of various types of registers used in microprocessors. It discusses system registers, status registers, pointer registers, index registers, hardware registers, instruction registers, control registers, memory management registers, segment registers, shift registers, stack registers, test registers, task registers, accumulator registers, EFLAGS registers, base address registers, and other specialized registers. The document aims to describe the purpose and function of different categories of registers within microprocessors.
The document discusses microprocessors, microcontrollers, and the 8085 microprocessor. It defines a microprocessor as a programmable device that performs arithmetic and logical operations on numbers according to a stored program. A microcontroller is similar but has memory and I/O functions integrated on a single chip. The 8085 is an 8-bit microprocessor with 40 pins that can address 64KB of memory and has 74 instructions across 5 addressing modes. It uses multiplexed address and data lines to reduce pins.
The document provides an overview of central processor organization. It discusses the major components of a CPU including storage components like registers and flags, execution components like the arithmetic logic unit, transfer components like buses, and control components like the control unit. It describes different types of CPU organization including single accumulator, general register, and stack organizations. It also covers various aspects of CPU organization like register organization, instruction formats, addressing modes, data transfer and manipulation instructions, program control instructions, and the role of flags and the processor status word.
This document provides an introduction to the 8085 microprocessor. It discusses the basic concepts of microprocessors including the internal architecture consisting of an ALU, control unit, and registers. It describes the different types of memory including RAM, ROM, and registers. It then focuses specifically on the features of the 8085 microprocessor, including that it is an 8-bit processor with 40 pins that can access 64KB of memory. The document outlines the instruction set categories and provides examples of instructions for data transfer between memory and registers.
This document provides an overview of computer organization and architecture. It discusses how a general purpose computer bridges the gap between desired behaviors and underlying electronic devices. The Von Neumann architecture is described as a model for computer design consisting of memory, ALU, control unit, and I/O. The key components of a computer - memory subsystem, ALU, control unit, and I/O subsystem - are then explained in more detail. Finally, the document outlines how instructions are fetched, decoded and executed in a Von Neumann architecture computer to implement programs stored in memory.
This document provides an introduction to assembly language programming and the 8080/8085 microprocessors. It describes the assembler and its functions, gives an overview of the 8080/8085 hardware and instruction set, and notes some differences in programming for the 8085 versus the 8080. The document is intended as both a reference and instructional guide for assembly language programmers.
The CPU is made up of 3 major parts: the register set, control unit, and arithmetic logic unit. The register set stores intermediate values during program execution. The control unit generates control signals and selects operations for the ALU. The ALU performs arithmetic and logic operations. Computer architecture includes instruction formats, addressing modes, instruction sets, and CPU register organization. Registers are organized in a bus structure to efficiently transfer data and perform microoperations under control of the control unit. Common instruction fields are the operation code, address fields, and addressing mode fields. Instructions can be classified by the number of address fields as zero-address, one-address, two-address, or three-address instructions. Common addressing modes specify how operands
The document discusses JTAG and boundary scan testing standards. It describes how JTAG allows complete control and observation of boundary pins via software to enable in-circuit testing without bed-of-nails equipment. Boundary scan Flash programming has advantages over other techniques like limited impact on design and ability to program in field. However, programming time is affected by factors like scan operations, path length, clock frequency, data amount, and burn time. The document also discusses AC97 audio codec standards and the JPEG image compression standard.
The document describes a microprocessor, which is an integrated circuit that contains the logic circuitry of a central processing unit on a single chip. It discusses the main components of a microprocessor, including the arithmetic logic unit, register array, control unit, and how they function together. It provides examples of applications for microprocessors across various fields like electronics, mechanical, electrical, medical, computers, and domestic devices. It also includes detailed diagrams and explanations of the architecture, bus structure, registers, flags, and pin descriptions of the specific 8085 microprocessor.
This document discusses the ARM instruction set and ARM-based microcontrollers. It describes load-store instructions for single and multiple register data transfer. It also covers branch instructions and theThumb instruction set. The document then discusses the LPC2148 ARM-based microcontroller, including its architecture, memory mapping, and peripherals. It notes the microcontroller has flash memory for code/data storage and SRAM for volatile storage, and peripherals are controlled via register access. Finally, it lists some hardware and software tools used for labs.
This document provides an introduction to a course on computer organization and assembly language. It will cover the main hardware components of a computer system, including memory, the CPU, and I/O ports. It will also discuss how instructions are executed in the fetch-execute cycle. Students will learn assembly language and how it maps to the underlying machine language understood by the CPU. They will be assessed through quizzes, assignments, a project, and a final exam.
INTEL x86 AND ARM DATA TYPES
⦁ Are instructions set architecture
⦁ Change code into instructions a processor can understand and execute.
⦁ Determines which operating systems and apps to run.
This document provides information about the Intel 8085 microprocessor. It includes sections on the architecture, system bus, programming mode, addressing modes, instruction set classification, instruction format, and sample programs. The architecture section describes the main components of the 8085 including the control unit, ALU, registers, program counter, stack pointer, and memory organization. It also explains the roles of the accumulator, flags, and general purpose registers. The system bus section outlines the address bus, data bus, and control bus used to communicate with external memory and I/O devices.
The document discusses different types of programmable logic devices including CPLDs and FPGAs. It provides details on the architecture and workings of the Xilinx XC9500 CPLD family and Xilinx XC4000 FPGA family. The XC9500 CPLD uses function blocks containing macrocells with programmable AND and OR arrays. The XC4000 FPGA uses configurable logic blocks containing function generators, flip-flops and programmable multiplexers to implement logic functions. Both devices use programmable interconnects to route signals between blocks.
Here are the key steps for how SPI works:
1. The master device initiates the data transfer by selecting a slave device using the chip select (CS) line. This brings the slave device online.
2. The master outputs the clock signal (SCLK) which is used by both the master and slave devices to synchronize the data transfer.
3. The master sends data on the MOSI (master out, slave in) line which the slave receives on its SDI pin in sync with the clock.
4. In parallel, the slave sends data on the MISO (master in, slave out) line which the master receives on its SDO pin, also in sync with the clock.
This document discusses embedded processors, including the VIA C3 processor and PowerPC MPC601 processor. It provides details on the architecture and design of the VIA C3 processor, including its instruction pipeline, instruction decode unit, branch prediction, integer unit, floating point unit, MMX and 3D unit. It notes some key characteristics of the VIA C3 such as its use of the x86 instruction set, pipelined design, and higher power consumption due to complexity. The document then briefly introduces the PowerPC MPC601 processor.
The 8085 is an 8-bit microprocessor that operates on a single +5V power supply. It has features like 16 address lines allowing access to 64KB of memory, 8 I/O address lines, and ability to operate at up to 3MHz clock frequency. The architecture of the 8085 includes registers like accumulator, flag, and program counter registers, an ALU, and functional blocks for instruction decoding, addressing, interrupts, and I/O. It has a 40-pin package with connections for power, data/address bus, control signals, interrupts, serial I/O, DMA and reset.
El documento propone diseñar un sistema de información (IT) para gestionar equipos médicos a través de módulos. El módulo de administración permitiría controlar usuarios y roles. El módulo de registro almacenaría información de equipos, consumibles y repuestos. El módulo de mantenimiento controlaría inspecciones preventivas, correctivas y cronogramas. El sistema mejoraría el control y registro para ofrecer servicios médicos de calidad.
El documento propone diseñar un sistema de información (IT) para gestionar equipos médicos a través de módulos. El módulo de administración permitiría controlar usuarios y roles. El módulo de registro almacenaría información de equipos, consumibles y repuestos. El módulo de mantenimiento controlaría inspecciones preventivas, correctivas y cronogramas. El sistema mejoraría el control y registro para ofrecer servicios médicos de calidad.
Este documento explica diferentes medidas de dispersión o variabilidad estadística como el rango, desviación típica, varianza y coeficiente de variación. Define cada medida, describe sus características y utilidades para cuantificar la separación de valores en una distribución y evaluar qué tan dispersos o similares están los datos.
El documento define el sexting como el envío de contenido sexual como fotografías o videos a través de teléfonos móviles. Explica que es una práctica común entre los jóvenes y adolescentes. También señala que el sexting puede tener consecuencias graves como el suicidio si las fotos se comparten con otros o exponer a los menores al acoso cibernético. Aconseja no producir, transmitir o provocar este tipo de contenido para proteger la privacidad de uno mismo y de los demás.
El documento habla sobre un grupo de estudiantes que se ha unido más a medida que han tenido que completar proyectos sin la guía de sus maestros. Reconocen que necesitan apoyarse mutuamente para graduarse en un año y lograr sus metas futuras. El autor desea que todos se gradúen y cumplan sus sueños.
El documento resume las opiniones de tres autores sobre la administración. Nilsson José Villa define la administración como el uso efectivo de los factores de producción. Oscar Domínguez señala que toda empresa necesita previsión, organización, coordinación, mando y control mediante principios generales. Max Webber destaca elementos como la racionalidad, planeación y un sistema de administración impersonal basado en normas y fines.
Este documento explica los coeficientes de correlación de Pearson y Spearman. El coeficiente de Pearson mide la relación lineal entre dos variables cuantitativas, mientras que el coeficiente de Spearman mide la relación entre variables ordinales o cuando no hay distribución normal. Ambos coeficientes varían de 0 a 1, donde valores cercanos a 1 indican una fuerte correlación positiva o negativa.
Este documento resume la gerencia industrial como el área de la administración que se encarga de utilizar los recursos de manera efectiva en las actividades de producción de las industrias manufactureras y de servicios para obtener mejores beneficios. Explica que la gerencia industrial es importante porque aprovecha los recursos para lograr un crecimiento satisfactorio y mejorar la calidad de los productos, dirigiendo a la organización hacia la eficacia y eficiencia para cumplir su visión. Además, se aplica principalmente a empresas dedicadas a la producción pero
Este documento discute el papel de las tecnologías de la información y la comunicación (TIC) en la educación. Indica que las TIC pueden proporcionar una gran cantidad de información flexible para los estudiantes y permitir diferentes ritmos de aprendizaje. Sin embargo, la formación de los docentes en el uso efectivo de las TIC en la enseñanza es fundamental para aprovechar plenamente su potencial y acompañar los cambios en curso en la educación.
Este documento describe los elementos y métodos para construir tablas de distribución de frecuencia. Explica que una tabla de frecuencia agrupa los datos originales en intervalos de clases y cuenta la frecuencia de cada clase. También define conceptos como intervalos de clase, número de clases, frecuencias simple y acumulada, y métodos para calcular medidas de tendencia central como la media, moda y mediana a partir de una tabla de frecuencias.
Este documento proporciona definiciones y explicaciones de términos básicos en estadística. Define variable, población, muestra y parámetro estadístico. Explica tipos de variables como cualitativas, cuantitativas, discretas y continuas. Describe escalas de medición como nominal, ordinal, de intervalo y de razón. También cubre conceptos como suma, razón, proporción, tasa y frecuencia.
El documento define el sexting como el envío de contenido sexual como fotografías o videos a través de teléfonos móviles. Explica que es una práctica común entre los jóvenes y adolescentes. También señala que el sexting puede tener consecuencias graves como el suicidio si las fotos se comparten con otros o exponer a los menores al acoso cibernético. Recomienda no producir, transmitir o provocar este tipo de contenido para proteger la privacidad de uno mismo y de los demás.
This document provides an introduction to the Motorola 68HC11 microcontroller. It begins by defining key terms related to computers, microprocessors, and microcontrollers. It explains that a computer consists of a processor, memory, and input/output components. A microprocessor is a processor contained on a single integrated circuit, while a microcontroller adds memory and input/output capabilities. The Motorola 68HC11 is an 8-bit microcontroller that contains CPU, RAM, ROM, timers, analog/digital converters, and communication interfaces on a single chip. It finds applications in devices like appliances, automobiles, printers, and more. The document discusses memory technologies like SRAM and DRAM that are used in microcontrollers.
El documento describe un grupo de estudiantes que a pesar de tener varios problemas como bajo rendimiento académico y desorden, forjó buenas amistades entre sus miembros. El autor destaca que aunque hay divisiones en el salón, él se lleva bien con la mayoría del grupo y que juntos lograron buena cooperación a pesar de sus defectos.
This document provides information about the ARM7 microcontroller LPC2148. It discusses the features of the LPC2148 including its memory, speed, interfaces, and peripherals. It also describes the ARM7TDMI-S architecture and software tools that can be used for programming the LPC2148 such as compilers, debuggers, and IDEs. Finally, it discusses some example applications of the LPC2148 and how to interface it with an LCD and communicate using UART.
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIMjournalBEEI
This paper deals with the novel design and implementation of asynchronous microprocessor by using HDL on Vivado tool wherein it has the capability of handling even I-Type, R-Type and Jump instructions with multiplier instruction packet. Moreover, it uses separate memory for instructions and data read-write that can be changed at any time. The complete design has been synthesized and simulated using Vivado. The complete design is targeted on Xilinx Virtex-7 FPGA. This paper more focuses on the use of Vivado Tool for advanced FPGA device. By using Vivado we get enhaced analysis result for better view of properly Route & Placed design.
8 bit Microprocessor with Single Vectored InterruptHardik Manocha
SoC consists of instruction memory, main memory and microprocessor unit. Instructions are fetched using PC and as per the instruction, main memory and register memory are accessed. 8 bit data bus is built. Working on developing programs to look for microprocessor operation.
This document outlines the course content for EEE226 Microprocessor course taught by Dr. Zaini Abdul Halim. The course aims to help students understand microprocessor architecture, assembly language programming, and interfacing microprocessors to external devices. It will be evaluated based on hands-on tests, theoretical tests, lab reports, and a final project. Topics covered include the 8085 microprocessor architecture, programming, and applications. The syllabus lists weekly labs and activities covering concepts like I/O devices, ADCs, DACs, and interrupts.
This document discusses the architecture and programming of microprocessors. It focuses on the Intel 8085 8-bit microprocessor. Key points include:
- The 8085 has an 8-bit data bus and 16-bit address bus, allowing access to 64KB of memory. It has accumulator, flag, program counter and other registers.
- Assembly language is used to program the 8085 by mapping mnemonics to machine code instructions. Various I/O devices can be interfaced like keyboards and timers.
- The document outlines chapters covering the 8085 architecture, programming, interfacing I/O, and advanced microprocessors. It provides background on microprocessor applications and system components like memory, input, output and the
A 16-bit microprocessor I designed during my final semester (2005) of my Bachelor of Technology program. The microprocessor circuitry design was coded in VHDL and then configured in a Xilinx XC9572 PC84 CPLD kit. Most of the design, the architecture and the instruction set were taken from Computer System Architecture (3rd ed.) by M. Morris Mano. See https://github.com/susam/mano-cpu for VHDL source code and other related files.
4bit pc report[cse 08-section-b2_group-02]shibbirtanvin
The document describes the design and implementation of a 4-bit very simple computer system as an assignment. Key aspects of the design include a 2-stage pipeline with separate fetch and execution units, Harvard architecture with separate instruction and data memory, and a microprogrammed control unit. The computer is designed to execute 28 instructions from an assigned instruction set in an efficient manner using as few clock cycles and chips as possible.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
Assemblers take assembly code written in symbolic mnemonics and convert it into machine-readable object code. They evaluate the operation field of each instruction to find the corresponding machine code value. Assemblers also generate location counter values and other information needed by the loader. Assembly programs contain labels, opcodes, operands, and comments. Assembler directives provide instructions to the assembler itself rather than generating machine codes. Common directives include START and END to specify the beginning and end of a program. VAX, Pentium Pro, and other architectures have different data formats, instruction formats, addressing modes, instruction sets, and I/O methods.
This document provides information about the Intel 8085 microprocessor, including its architecture, components, and pin descriptions. The 8085 is an 8-bit microprocessor that can address up to 64KB of memory. It has an arithmetic logic unit (ALU) for performing computations, a register array for data storage, and a control unit that provides timing and control signals. The document describes the functions of the program counter, stack pointer, flags register, and interrupt handling. It also provides details on the address bus, data bus, control bus and serial I/O lines. Memory interfacing examples with EPROM are given.
The ADD instruction performs 32-bit addition of two register operands and stores the result in a third register. It updates the N, C, Z, and V flags based on the result. There are no limitations. Examples demonstrate adding two values and storing the result in a third register.
This document provides information about the 8086 microprocessor. It discusses:
- The 8086 is a 16-bit microprocessor introduced in 1978 as an improved version of the 8085. It contains about 29,000 transistors and can address 1 megabyte of memory.
- It has a 16-bit data bus and 20-bit address bus. Memory is divided into code, data, stack, and extra segments.
- The 8086 has two main units - the execution unit which decodes and executes instructions, and the bus interface unit which handles data transfers. It includes registers, flags, and a memory addressing scheme using segments and offsets.
- General purpose registers include AX, B
The document discusses the introduction to microprocessors and microcomputers. It begins by defining a microcomputer as a small, inexpensive computer with a microprocessor as its central processing unit. It then covers topics like the block diagram of a microcomputer, machine language, assembly language, what is a microprocessor, and the working of a microprocessor. It also provides details about the 8085 microprocessor architecture including its register array, ALU, instruction decoding, interrupts, I/O ports, pin descriptions and status signals.
The document discusses machine structure and system programming. It begins with an overview of system software components like assemblers, loaders, macros, compilers and formal systems. It then describes the general machine structure including CPU, memory and I/O channels. Specific details are provided about the IBM 360 machine structure including its memory, registers, data, instructions and special features. Machine language and different approaches to writing machine language programs are also summarized.
The document provides an overview of hardware concepts related to embedded systems. It discusses the major functional blocks of a computer system including input, output, memory, and the data path and control block. It also describes typical bus structures and how numbers, addresses, instructions, and other information are represented digitally. Additionally, the document outlines different types of instructions and addressing modes, as well as concepts like data and control flow, the instruction cycle, and register transfer level modeling. Microprocessors, microcontrollers, and DSPs are compared. Peripherals, memory systems, and the Harvard and von Neumann architectures are also introduced.
Chapter 1
Syllabus
Catalog Description: Computer structure, machine representation of data,
addressing and indexing, computation and control instructions, assembly
language and assemblers; procedures (subroutines) and data segments,
linkages and subroutine calling conventions, loaders; practical use of an
assembly language for computer implementation of illustrative examples.
Course Goals
0 Knowledge of the basic structure of microcomputers - registers, mem-
ory, addressing I/O devices, etc.
1 Knowledge of most non-privileged hardware instructions for the Ar-
chitecture being studied.
2 Ability to write small programs in assembly language
3 Knowledge of computer representations of data, and how to do simple
arithmetic in binary & hexadecimal, including conversions
4 Being able to implementing a moderately complicated algorithm in
assembler, with emphasis on efficiency.
5 Knowledge of procedure calling conventions and interfacing with high-
level languages.
Optional Text: Kip Irvine, Assembly Language for the IBM PC, Prentice
Hall, 4th or 5th edition
1
Additional References: Intel and DOS API documentation as presented
in Intel publications and online at www.x86.org; lecture notes (to be sup-
plied as we go).
Prerequisites by Topic. Working knowledge of some programming lan-
guage (102/103: C/C++); Minimal programming experience
Major Topics Covered in the Course:
1 Low-level and high-level languages; why learn assembler?
2 How does one study a new computer: the CPU, memory, addressing
modes, operation modes.
3 History of the Intel family of microprocessors.
4-5 Registers; simple arithmetic instructions; byte order; Arithmetic and
logical operations.
6 Implementing longer integer type support; carry and overflow.
7 Shifts, multiplication and division.
8 Memory layout.
9 Direct video memory access; discussion of the first project.
10 Assembler syntax; how to use the tools.
11-13 Conditional & unconditional jumps; loops; emulating high-level lan-
guage constructions; Stack; call and return; procedures
14-15 String instructions: effcient memory-to-memory operations.
16 Interrupts overview: interrupt table; how do interrupts work; classif-
cation.
17 Summary of the most important interrupts.
18-20 DOS interrupt; File I/O functions; file-copy program; discussion of
the second project
21 Interrupt handlers; keyboard drivers; timer-driven processes; viruses
and virus-protection software.
2
22 Debug interrupts; how do debuggers and profilers work.
23-24 (Optional).interfacing with high level languages; Protected mode fun-
damentals
Grading The grading is based on two projects, midterm project is 49%
and the final is 51%. Please note that the projects are individual, submitting
projects that are similar to submissions of others and/or are essentially
downloads from the Web would result in a fail.
Office Hours My hours this term for CSc 210 will be 3:45 ¶Ł 4:45 on
Mondays.
Zoom links:
11am https://ccny.zoom.us/j/8 ...
Assembly language represents machine-level instructions in a symbolic and more understandable form. It provides knowledge of how a processor executes instructions and accesses data. While requiring less memory and execution time, assembly language allows hardware-specific tasks and is suitable for time-critical jobs. The processor executes programs by fetching, decoding, and executing instructions, accessing data through memory addresses. It stores multi-byte data in reverse order and uses absolute or segment addresses.
The document discusses the architecture and features of the Intel 8085 microprocessor. It can address up to 64KB of memory using its 16-bit address bus. It has an 8-bit arithmetic logic unit (ALU) and six 8-bit general purpose registers that can be combined into register pairs. The control unit provides timing and control signals. The 8085 has interrupt capabilities and can perform serial I/O communication. It requires a single +5V power supply and operates at speeds up to 3MHz.
Design of FPGA based 8-bit RISC Controller IP core using VHDLAneesh Raveendran
This paper describes the design, development and
implementation of an 8-bit RISC controller IP core. The
controller has been designed using Very high speed integrated circuit Hardware Description Language (VHDL). The design constraints are speed, power and area. This controller is efficient for specific applications and suitable for small applications. This non-pipelined controller has four units: - Fetch, Decode, Execute and a stage control unit. It has an in built program and data memory. Also it has four ports for communicating with other I/O devices. A hierarchical approach has been used so that basic units can be modeled using behavioral programming. The basic
units are combined using structural programming. The design
has been implemented using ALTERA STRATIX II FPGA
2. Designing a microcontroller which supports the
instruction set of 68HC12, using VHDL.
Successfully implementing the design on Xilinx
FPGA .
Testing of the design using simulations, before
and after place-and-route, and finally burning
and testing of the design on the FPGA. The
tests will be written in Assembly and then C.
Matching the testing results from our design to
an original Motorola’s 68HC12 board.
3. CPU12 Features
The CPU12 is a high-speed, 16-bit processing
unit.
68HC11 source code is accepted by CPU12
assemblers with no changes.
The CPU12 allows instructions with odd byte
counts, including single-byte instructions.
The CPU12 offers an extensive set of indexed
addressing capabilities including:
Using the SP as an index register in all indexed
operations.
Using the PC as an index register in all but auto
inc/dec mode.
In-detail about indexed addressing up ahead.
4. Instruction Set
In 68HC12 family there are
206 different instructions.
Many instructions have
different addressing modes.
Each addressing mode has a
unique opcode (all IDX has
one opcode). There are 309
opcodes overall.
The instructions are consisted
of 1-6 bytes:
1 or 2 bytes of opcode.
The rest is data for a
specific operation.
Maximum and
minimum.
Jump and
subroutine.
Branch.
Index manipulation.
Stacking.
Condition code.
Null.
Interrupt.
Fuzzy logic.
Multiply and
accumulate.
Table and
interpolation.
Background, stop
and wait.
Load and store.
Transfer and
exchange.
Move.
Addition and
subtraction.
BCD (Binary Coded
Decimal).
Decrement and
increment.
Compare and test.
Boolean logic.
Clear, complement and
negate.
Multiplication and
division.
Bit test and
manipulation.
Shift and rotate.
The CPU12 supports many
instructions:
5.
6. There are six addressing modes all-in-all:
Inherent (INH) – this addressing mode uses only CPU
registers, if any, as operands. No memory access is needed.
Immediate (IMM) – operands are included in the instruction
stream. The data must be preceded by ‘#’ symbol, which
indicates explicit data for the assembler.
Direct (DIR) – operand is the lower 8-bits of an address in
the range $0000-$00FF (‘$’ indicates an address).
Extended (EXT) – operand is a 16-bit address.
Relative (REL) – operand is an offset, relative to the PC
register. Can be either 8 or 16-bit. Used only for branch
instructions.
Indexed (IDX) – explanation in detail follows…
Addressing Mode
7. Registers – An Overview
All-in-all the CPU has seven registers:
A, B, (D), X, Y, SP, PC and CCR.
A and B 8-bit accumulators, are general purpose registers. They are
used for holding operands and results of operations. Some
instructions use the combination of the both as a 16-bit accumulator
D (A:B).
X and Y are 16-bit registers. They are used for indexed addressing
mode operations.
SP (Stack Pointer) is used to save system context during subroutine
calls. It can also be used as a temporary storage place. Initially SP
points to 0x0BFF.
PC (Program Counter) is the register which holds the address for
the next instruction. It can be incremented by byte or two, or by
relative address.
CCR (Condition Code Register) contains status bits. It is used
mostly for branch instructions, based on a previous operation.
8. Condition Code Register
S – Stop disable bit. Setting S disables “STOP” instruction.
X – XIRQ interrupt mask bit. Masks interrupt request from XIRQ pin
when set.
H – Half carry flag. Used in BCD arithmetic operation. Set if a carry
is produced from bit 3.
I – Interrupt mask bit. When set, disables maskable interrupt
sources.
N – Negative flag. Set when result is less than 0.
Z – Zero flag. Set when result is 0.
V – Two’s complement overflow flag. Set when two’s complement
overflow occurs.
C – Carry/Borrow flag. Set when an addition or subtraction
operation produces a carry or borrow.
9. Memories
There are three memories in the designed
architecture:
Program memory – used for program code
storage. located at $F000-$FFFF.
Register memory. Registers located at $0000-
$01FF.
General memory. RAM located at $0800-$0BFF.
Generated by Coregen.
10. Program Memory (PM)
As mentioned before, the CPU is 16-bit
processing unit. Thus, the PM has to output
16-bits for each cycle.
On the other side, it has to be able to handle
odd-bytes instructions – it must be capable of
stepping by one byte in many cases.
Having this in mind, the architecture was
planned accordingly.
11. Register Memory
Contains control registers
which define attributes and
functioning of the CPU.
For example:
DDRA ($0002) – sets pins of
port A as inputs or outputs.
The majority of the registers
were not needed for our tests.
Therefore weren’t
implemented.
If necessary, required
registers can easily be added
to our design.
Each register is defined by
address and reset value of its
own. The implementation was
done with a generic
component.
12.
13. Memories Control
In order to be able to
use memory-
instructions well, it is
needed to be able to
refer to each memory
with no special
treatment.
For that purpose a
comparator was built
which allows the
appropriate enable
pass according to a
received address.
14. Package
Constants were defined.
When reading a file, words are far more
understandable then numbers.
Changes in vector size of signals used in various
locations are made only from the package.
Procedures were defined for better
organization.
Function for std_logic_vector-to-string[1].
15. The control is built as Microcode.
All-in-all there are 61 bits for each instruction in
the control’s ROM. The next address is
determined by 10 bits.
The IDX component also has its own next
address pointer.
Few bits determine where to take the next
address from (R, ROM, IDX).
When an instruction uses IDX addressing mode,
the next address from the ROM is written to R
register. When the IDX instruction is finished, the
next address is fetched from R.
Control Unit
16. The ROM
The ROM contains all the control bits, for
each instruction. First, the bits were set
separately and deliberately into an excel
sheet.
From the excel, the file was saved in CSV
format.
The CSV file is manipulated by a script, which
produces a text file that meets the restrictions
of Xilinx's Coregen.
According to our settings and the produced
file, Coregen outputs the ROM’s VHDL file,
ready to be used.
17. About Programs –
Coregen
This program is provided by Xilinx. It was
used for generating components. The three
components generated are:
ROM for the control unit.
RAM for general purpose memory.
DIV components for divide operations.
Coregen generates two important files:
A VHDL file – used for simulation. The
synthesize program ignores this file (as
prompted in the file).
A NGC (neglect) file – used for P & R.
18. There are six different indexed addressing
modes:
5-bit offset – 5-bit signed constant offset from
X, Y, SP or PC.
Pre/Post increment/decrement.
9/16 -bit offset.
Indirect 16-bit offset – pointer to operand is
found at 16-bit constant offset from X, Y, SP or
PC.
Accumulator offset using A, B or D.
Indirect D accumulator offset – offset is found
in D.
IDX
19. Approaching –
Indexed Addressing Mode (IDX)
When approaching IDX
addressing mode, we
encountered a problem.
Almost every instruction has
at least one IDX addressing
mode. Adding each IDX into
the excel seemed inefficient.
Furthermore, all IDX
operations share the same
opcode per instruction,
which makes the idea of
changing only the excel
almost impossible.
Thus, the decision was to
make an independent
component for IDX. The
component detects the exact
kind of IDX to be executed.
When an indexed addressing
mode instruction is initiated,
the IDX component “takes
control” while saving the
last address in R. Some of
the control bits, including
enable, select and the next
address, come from the IDX
rather than the ROM.
At the last cycle of the IDX,
the effective address is
saved in a designated
register. The data stored in
the memory at the effective
address is also read out. This
was done in order to shorten
many instructions( by one
cycle).
When the IDX part is done,
the last address is read from
20. Each address contains
different instruction code
and the next address.
Opcodes pass through some
logic, which leads to the right
address in the ROM
The next address is
fetched, either from the
ROM, R register or the
IDX component.
Each cycle, the
appropriate stream of bits
is sent out to the system.
21. Arithmetic Logic Unit (ALU)
The ALU performs
arithmetic and logical
operations. It is the most
sophisticated computing
component in our design.
The operation to be done is
chosen according to
ALU_op.
Some operations affect the
CCR register.
It also decides whether to
branch or not, according to
22.
23.
24.
25. Windows && Linux
The work was performed on two computers –
Windows (laptop) and Linux (project comp).
Windows’s main advantage is its compatibility with
many programs that wouldn’t work on Linux such
as MiniIDE, ICCV7 and Office.
In Linux was used for shell-script. Also, a remote
connection is possible, which allows us to work
from any place with internet connection. Programs
used: Putty, Xming and TightVNC Viewer.
A connection was established between the two
using an SCP client (WinSCP). That way we could
work simultaneously on files located in Linux.
26. Backup
In big projects, it is very important to backup all
our work, in case of data loss.
For that purpose a net service was used,
provided by assembla[2].
Each member of the project can update and
commit files of any kind to the project.
All sub-versions (SVN) are saved and stored
in-site.
All files can be easily compared to
previous versions in-site (diff).
27. Reference Board
68HC812A4 microcontroller
90 I/O lines
8-channel, 8-bit analog-to-digital converter
4K EEPROM and 1K RAM on-chip
includes both RS232 and RS485
interfaces, usable simultaneously
primary 50-pin connector for dedicated I/O
secondary 50-pin connector for additional
I/O or expanded mode memory bus
4-pin and universal 6-pin/10-pin BDM
connectors support BDM pods from
multiple vendors
program in C, BASIC, or assembler
256-byte firmware bootloader provides
convenient downloading via RS232 serial
port
fully compatible with third-party
assemblers, compilers, and BDM pods
28. About Spartan 3E
Xilinx Spartan-3E FPGA,
500K gate
USB2 port providing board
power, device configuration,
and high-speed data transfers
16MB fast Micron PSDRAM
16MB Intel StrataFlash Flash
R
Xilinx Platform Flash ROM
50MHz oscillator
75 FPGA I/O’s routed to
expansion connectors (one
high-speed Hirose FX2
connector with 43 signals and
four 2x6 Pmod connectors)
On-board I/O includes eight
LEDs, four-digit seven-
segment display, four
pushbuttons, eight slide
switches
29. Scripts
Scripts help us do
necessary work, that
would take a lot more
time without them.
A well-done script saves
us many small mistakes.
On a routine work, it is a
must. We couldn’t finish
the project without them.
The scripts were done in
Python language, all
except one, which is
Linux shell-script.
A script called “mani”, is
responsible for
manipulating the CSV file
mentioned above.
First, it checks the file for
errors like missing bits,
then it produces a COE file
for Coregen.
Next, it activates Coregen
and generates a ROM with
a pre-defined settings for
the design.
It also copies all necessary
files to a specified location,
and updates few files with
the ROM properties.
A script called
“PM_maker”, is
responsible for
manipulating S19 file of
a compiled program and
converts it to a Program
Memory VHDL file,
according to our design.
A script called “test”, is
responsible for running
all the tests made on
Modelsim and checking
of the simulations
results.
Besides the S19 file, the
C compiler also
produces a LST file,
which contains the
assembly commands.
A script called “cover”, is
responsible for
counting the number
of unique instructions
used in each program.
A script called “burn”, is
responsible for burning
the design of on the
FPGA.
First, it run a synthesize
of the design and then
Place & Route. All the
setting are predefined.
Finally, after a Bitstream
file is ready, it burns it
into our board,
assuming it is already
connected to the
computer.
30. The testing process –
the Program
Two programs were used for compiling: MGTEK
MiniIDE – used for compiling assembly.
ICCV7 for CPU12 – used for C programs.
Each compiler produces a S19 file. S19 file
contains addresses and corresponding data.
In some cases, programs debugging was done
using NoICE for 68HC12 debugger.
A script was made (with python) in order to
manipulate the S19 file and make a fitting PM,
according to our design.
31. The testing process –
Simulation
compilation and simulation
of VHDL files was done
using ModelSim.
The majority of the
debugging was done
using this program.
In order to quicken the
testing process, a DO file
was created for auto
compilation and waveform
configuration.
ASSERT command was
used to report IDX
operations and also for
outputting PORTA’s value to
ModelSim’s transcript.
For easier debugging we
used signal-spy to detect
32. The testing process –
Synthesize
Done with Precision. It generates a netlist and
constraints files for P & R. It also produces
some important reports regarding our design.
Two of the most important ones are timing and
area reports.
33. The testing process –
P & R, Simulation and Burn
Next, settings and connections in Xilinx’s ISE are
defined. Place & Route is run on the design and a
last simulation is performed. Hopefully everything
is still working.
Various reports are generated such as pad, timing
and area reports.
In the process of synthesizing the design, a
Bitstream file is generated. This file has all the
data needed in order to burn-in the design.
Finally the data is burned to our FPGA and
compare the results with the scope.
34. The testing process –
Summary
VHDL
Simulation
(Modelsim)
Synthesize
(Precision)
Netlist
Map, Place &
Route
(ISE)
Bitstream
35. About Programs –
MiniIDE
This is a free program that allows one to write
programs in assembly for CPU12.
It produces a S19 file that can be either
directly downloaded into the original CPU or
manipulated to a VHDL Program Memory file
for our design.
Another useful file produced is a LST file. It
contains all the assembly instructions, along
with their addresses and opcodes.
36. About Programs –
ICCV7 for CPU12
This program allows one to write programs in
C for CPU12.
It also produces a S19 and LST files.
This program is used for downloading the
program code (S19 file) into the original board.
37. About Programs –
NoICE for 68HC12
This program is a debugger.
The values of the CPU registers and memory
can be viewed with every step.
Used for comparing between ModelSim
simulation and the behavior of the original
CPU.
38. Critical Path
The actual used in the FPGA is 1.5625 MHz
(which is 50 MHz divided by 32). The
frequency is achieved by using the DCM.
According to Precision’s timing report, the
maximum possible frequency is 4.81 MHz.
According to ISE’s timing report, the maximum
possible frequency is 3.15 MHz.
39. The DCM
In the process of
adding more
instructions, the need
for a slower clock has
risen.
For that purpose, the
FPGA has a Digital
Clock Manager (DCM)
component. It can
multiply or divide an
incoming clock
frequency among other
functions.
The component is
provided in Xilinx’s ISE
library.
40. Testing Programs –
Leds
Two assembly
program were written,
both “play” with the
leds on our spartan-
3E.
One toggle the leds,
forward and
backwards.
The other counts from
00000000 to
11111111. A lit led is
‘1’ while turned-off led
is ‘0’.
41. UART
The component was
taken from Digilent and
was implemented in our
design.
Based on an example
file, an interface VHDL
file was made in order
to interact with our
design.
Bitrate was set to 9600
bps.
One start bit, one odd
parity bit and one stop
bit.
42. Testing Programs –
Calculator
Offers the user to
choose from 5 different
operations:
Add, subtract, multiply,
divide and modulo.
Then the user chooses
operands, and receives
the result.
All is done through the
UART.
The program tests five
basic arithmetic
operations.
43. Testing Programs –
Fibonacci
The user inputs the first
two elements and number
of elements to output via
UART.
The CPU computes the
Fibonacci elements using
recursion.
Each element is outputted
when ready, along with its
ordinal number.
The output’s range is 0 to
4,294,967,295 (unsigned
long, which is quite
enough).
The program also uses
built-in functions.
44. Testing Programs –
Tiny Encryption Algorithm (TEA)
Receives a hex 8-byte
word for encryption.
Receives a hex 16-byte
key-word.
Offers to encrypt or
decrypt the given word
according to the key.
All is done using the UART.
No change was done to
the original algorithm[3].
45. Testing Programs –
RC4
Receives an ascii
word for encryption.
Receives an ascii key
word.
Offers to encrypt or
decrypt the given
word according to the
key.
All is done using the
UART.
No change was done
to the original
algorithm[4].
46. Coverage
93.5% of the opcodes are supported in our
design.
Unimplemented instructions include:
Interrupt.
Fuzzy logic.
Multiply and accumulate.
Table and interpolation.
Background, stop and wait.
With our assembler and C programs, an
overall coverage of 50.5% was achieved.
47. Possible Usage
The 68hc12 CPU core can be used as a
component inside a larger SoC (System on
Chip) design.
Initial cost of a CPU core is estimated around
$40K.
This design cannot be used for commercial
purposes due to University license
agreements related to the CAD/EDA tools
used in JCT.
Nevertheless, the core can be used internally
in JCT for courses, labs and projects.
48. Thanks
Many thanks to Mr. Uri Stroh for his
professional guidance, outstanding patience
and encouragement.
Many thanks to Dr. Shimon Mizrahi for his
helpful advice.
למה בחרנו בפרויקט.
מה למדנו במהלכו ואיך העשרנו את ידיעותינו.
מה נדרש מאיתנו.
- רקע על משפחת המעבדים, ומדוע בחרנו במעבד המסוים.
מבנה הפקודה.
קריאת הרפרנס (תהליך עבודה)
מה זה?
למה טוב כל מוד.
סדר העבודה.
את מי מימשנו קודם (לפי סדר העבודה).
איך מימשנו.
יחוד כל אחד.
מהי מטרת הדגלים?
מי שולט עליו.
*לדייק יותר במינוח EEPROM ביחס למימוש שלנו.
-
מה הבעיה שעמדה בפנינו, איך היה עלינו לפותרה ואיך פתרנו בפועל.
מה הבעיה שעמדה בפנינו, איך היה עלינו לפותרה ואיך פתרנו בפועל.
המשך הצגת פתרון
להראות דוגמה לפקודה שמשתמשת בלוגיקה.
מה הבעיה שעמדה בפנינו, איך היה עלינו לפותרה ואיך פתרנו בפועל.
מה רצינו לכלול וויתרנו.
לדבר על המרכיבים הנמצאים.
להסביר על נוחות.
למה צריך אותו?
דרכי פיתרון אפשריים. יתרונות חסרונות.
מדוע בחרנו במיקרו-קוד.
אבולוציה.
מה הבעיה שעמדה בפנינו, איך היה עלינו לפותרה ואיך פתרנו בפועל.
על אקסל (ועל הסקריפט).
הסבר כללי על IDX.
סוגים, ולמה נצרכים.
חשוב!
מה הבעיה שעמדה בפנינו, איך היה עלינו לפותרה ואיך פתרנו בפועל.
הצגת מימוש
דיבור על כניסות יציאות.
על המימוש.
בעיית הלצ'ים + למה זה בעיה.
ABA,LDAA,LDAB,STAA,JMP
!@!@!@!@!@!@!@!@!@!!@!@!@!@!@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ריבועים!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!
- הסבר על כל ריבוע.
דוגמה למהלך פקודה. LDX מזיכרון.
גוף שלישי
למה בחרנו בבורד הזה (רמז - $)
הפעלת הבורד + קשיים ופתרונם (אדפטר, ריסטרט ווקטור, הצורך ב IDE, העזרה בתוכנית לדוגמה שקיבלנו).
מדוע זה הבורד (USB).
דרייברים (תודה לרבין).
חיבורים של הבורד, קשר עם הסקופ, התאמת השעון ב ISE.
- תהליך עבודה עד ה PM. הכל.
על האסרט, סיגנל ספיי.
על תהליך הסימולציה.
VHDL
Program -> Design Tool
About SPY,ASSERT(checker)
מטרת פרסישן, ריפורטים יעילים, תהליך עבודה ->סקריפט.
מטרת ISE, ריפורטים יעילים, תהליך עבודה ->סקריפט.
להשלים חצים במילים.
RXD – כניסה של היוארט דרכו מגיע המידע (טורי) לקליטה
TXD – כנ"ל לשידור
DBIN – כניסה שדרכה נכנס מידע (מקבילי) לשידור
DBOUT – מכיל את המידע שנקלט (מקבילי)
RDA – דגל המעיד על קבלת מידע
TBE – 1 אם לא משדרים
RD – 1 אומר ליוארט לשדר
WR – כשרוצים לקבל מידע קובעים אותו ל 0
PE/OE/FE – ביטים לזיהוי שגיאות
RST - ריסט