Blog

HOW SECURE IS YOUR LINUX?

Introduction: Linux is popular because, it is available for free of cost, so it was liked by the students, the developers can access and modify the source code due to its open-source nature, so it was liked by the programmers, it is having the ability to communicate with other different operating systems, so it was liked by the system administrators, and many more to put on.., but there is a potential threat w.r.t. LINUX kernel because of its open-source nature. Any hacker can easily understand the kernel architecture and thereby he can find and exploit the loopholes in the operating system and can steal the data easily. So, we will mainly concentrate on the types of attacks that can allow you to hack the Linux network. Attacks that can be used to gain access to LINUX network: Security measures to be taken care of:  LINUX or any other operating systems are not secure straight out of the box, but we can suggest you the minimum necessary precautions to be taken to avoid getting hacked by the attackers

HOW SECURE IS YOUR LINUX? Read More »

Five Technology Trends in Automotive Industry

The five technology trends to consider before the actual fully autonomous vehicles become a fact. These also show our future of automotive. Vehicles as IoT Devices The internet of things provides a great potential for interconnectivity and linking smart vehicles into a network, providing the possibility of optimizing vehicle performance and driver experience. This trend also leverages the ability of IC manufacturers to integrate enhanced functionality into the more powerful microprocessor. The wireless connectivity integration not only simplifies communication between vehicle’s subsystems but serves to link it with external networks, other vehicles or traffic control systems. The connected cars and the collected data offer potential for features such as predictive maintenance, traffic management and the most important enhanced safety and emergency response capabilities. Our vehicles are no longer limited productivity spaces. What’s more, we can continue with our other activities on the go while still not being distracted from the road, leading us to the next trend. Advanced Driver Assistance Systems The advanced driver assistance system (ADAS) is designed to reduce the driver’s workflow during the driving process itself. It is based on embedded vision technology, consisting of vision systems surrounding the vehicle, looking to place it within a protective bubble against driver error, road obstacles, other vehicles, and pedestrians. These vision systems are capable of identification and real-time tracking. They usually require specialized knowledge of image acquisition and processing techniques. However, today the development of these complex systems have been simplified. The dedicated vision processors and multicore CPUs have put the sophisticated vision capabilities in most engineers’ hands. There are even some development kits that lower the barriers to entry into embedded vision technologies. That means they are getting more and more widespread among new vehicles. Advanced Motor Control Modern vehicles are filled with dedicated motor-control systems, which drive fans, pumps, compressors, and servomechanisms of all types. The growing desire for maximum efficiency and control has motivated engineers to move beyond traditional scalar control systems to more sophisticated digital vector control algorithms capable of delivering full torque with acceleration and deceleration at rates that can be precisely managed. Many cost-effective solutions are developed to provide maximum control capability and enable engineers to harness the power of advanced vector control methods. These sophisticated methods provide great flexibility and present designers with some challenges. That’s why the achievement of stable operation through all corner cases of a vector control design can demand highly specialized knowledge and often leads to slips in tight development cycles. However, advanced motor control is a tech trend that provides an improved driver experience. Predictive Technology Artificial intelligence and machine learning impact almost all technological aspects. They have an essential role in the future of the automotive industry as well. Predictive capabilities are now becoming prevalent in cars. They provide a highly personalized driving experience. Manufacturers are applying AI and ML algorithms to automate the setting up process of a vehicle, including its infotainment system and its application preferences. That makes vehicles our new IoT devices that connect to our smartphones or wearable devices and actually understand us. The predictive technologies could also be implemented as sensors within a car. They can inform the driver if the vehicle needs service. They also estimate its performance, depending on the mileage and condition.  Vehicle-to-Everything Communication As we already noted above, connectivity is among the key trends in the automotive industry. You’ve seen the IoT trend above as well. However, this one goes beyond network connectivity.  It’s already changing the future of driving. Also, Intelligent traffic systems will be created to avoid collisions, send emergency vehicle notifications to provide car diagnostics and manage to park. The vehicle-to-everything technology will send real-time traffic notifications, accident alerts, and other warnings. It’s set to increase traffic safety, sent forward-collision warnings to detect obstacles and offer safety measures. This technology will take us a step closer to smart roadways and a safer driving experience.

Five Technology Trends in Automotive Industry Read More »

Emerging trends in Automotive embedded systems and applications

The embedded industry was born with the invention of microcontrollers/microprocessors and since then it has evolved into various forms, from primarily being designed for machine control applications to various other new verticals with the convergence of data communications.  Various classes of embedded systems such as media systems for homes, portable players, smartphones, embedded medical devices and sensors, automotive embedded systems have surrounded us and with continued convergence of data communications and computing functions within these devices, embedded systems are transforming themselves into really complex systems, thus creating newer opportunities and challenges to develop and market more powerful, energy-efficient processors, peripherals and other accessories. An embedded system is more than electronics as most people perceive it. It has electronics – both digital and analogue, special purpose sensors and actuators, software, mechanical items etc., and with design challenges of space, weight, speed, cost and power consumption. Its important characteristics are low-power, real-time responsiveness, low thermal dissipation, predictable, small physical form factor/footprint, low radiation/emission, ruggedness in design and impervious to external radiations etc. To achieve key requirements, generally, embedded systems are restricted to limited resources in terms of computing, memory, display size etc. With the continued convergence of other technologies, a lot more functionalities are being pushed into embedded devices that were once part of traditional computing platforms. This further adds a major “decision challenge” for architects and product managers on the selection of processors, operating systems, standards of usage etc., as demands on functionality increase with time to market decreases.  Automotive Embedded System With drive across the world to improve on emission controls and bring in efficiency in usage of fossil fuels, the automotive segment is challenged by various factors and embedded systems are the ways and means of achieving multiple objectives in this segment taking it from infotainment systems, engine control unit, Car-area-network, fuel management, safety systems all need to be embedded to be in it.  Traffic management and prediction systems are being developed for large cities across the world today and the critical systems that have to support this are M2M or V2V communication networks that, form adhoc networks, seamlessly gather information from multiple sources, fuse and make decisions that not only help the car users but also city traffic managers.  The real-time management of this is possible only by having embedded computing and communication systems that are part of the vehicle and the network. The usage of vehicle tracking and fleet tracking has already been beneficial for the operators by reducing their OPEX and downtime which has enhanced customer satisfaction.  This apart, media-oriented systems transport (MOST) is one of the technologies being deployed by OEMs for multimedia and infotainment networking. This technology is designed to provide an efficient and cost-effective fabric to transmit audio, video, data and control information between devices attached even to the harsh environment of an automobile. MOST MOST (Media Oriented Systems Transport) is a high-speed multimedia network technology optimized by the automotive industry. It can be used for applications inside or outside the car. The serial MOST bus uses a daisy-chain topology or ring topology and synchronous data communication to transport audio, video, voice and data signals via plastic optical fiber (POF) (MOST25, MOST150) or electrical conductor (MOST50, MOST150) physical layers. MOST technology is used in almost every car brand worldwide, including Audi, BMW, General Motors, Hyundai, Jaguar,Lancia, Land Rover, Mercedes-Benz, Porsche, Toyota, Volkswagen, SAAB, SKODA, SEAT and Volvo. SMSC and MOST are registered trademarks of Standard Microsystems Corporation (“SMSC”), now owned by Microchip Technology. The first multimedia installation based on MOST bus and protocol was introduced in the year 2001. In the same year, the MOST bus was applied in the next ten vehicle models. In the year 2013, MOST Cooperation consortium could report MOST introduction into 140 vehicle models including new models i.e. Audi A3 and Mercedes class S. MOST bus and protocol have been present in popular medium segment vehicles e.g. Volkswagen Golf and Opel Insignia as well as the models: Rolls Royce Ghost, Phantom and Wraith. The functioning of the majority of wire communication buses in motor vehicles is based on a linear bus topology. Therefore MOST bus is a unique solution because it is based on ring topology (Fig. 1). The application of fiber optic solutions is another specific feature. Communication via cable connections is possible after the transceivers replacement. MOST bus operation is typical for ring topology. The data block received from the preceding node is used as an information and commands source. The block received from the preceding node is regenerated and forwarded. Turned off devices transmit the optical signal without its analysis. The data transfer is finished when the block is received by its sender. The ring contains some special nodes responsible for the ring management i.e. commands generation based on user activity and for the ring synchronization (Fig. 1b). MOST protocol and bus are dedicated to multimedia networks which are sometimes called Infotainment networks. High throughput levels are required for data stream in such networks. Despite MOST150 standard functioning for several years, this fact has been not mentioned in many publications. Most often the graphical presentations inform about the throughput of about 25 Mbps (Fig. 2)which is underestimated by three times. The throughput of 150 Mbps will be probably exceeded soon. The manufacturers of Plastic Optical Fibers (POF) indicate the throughputs of 500 Mbps along the section of 20 m or 170 Mbps along the section of 115 m. The transceiving equipment is prepared for operation with a throughput of 5 Gbps. The current throughput is sufficient to use MOST as an element in the network supporting images received from the security camera or the games network.

Emerging trends in Automotive embedded systems and applications Read More »

Dynamic Memory Allocation

Dynamic Memory Allocation is defined as a process where the size of a data structure can be modified during the run time. There are certain predefined functions which can implement the above condition.There are 4 library functions provided by C all of which are defined under <stdlib.h> header file to facilitate dynamic memory allocation in C programming. They are: malloc() “malloc” or “memory allocation” method is used to allocate a single large block of memory baes on the specified size. The return type of malloc is of type void pointer which can be typecast-ed to any form.It initializes each block with a default value therefore some garbage value. Syntax: int *ptr = (cast-type*) malloc(byte-size) For Example:  int *ptr = (int*) malloc(100 * sizeof(int)); Since the size of int is 4 bytes, this statement will allocate 400 bytes of memory. And, the pointer ptr holds the address of the first byte in the allocated memory. calloc() “calloc” or “contiguous allocation” method is used to allocate specified number of blocks of memory baes on the specified type. It initializes each block with a default value ‘0’. Syntax: int *ptr = (cast-type*)calloc(n, element-size); For Example: int *ptr = (float*) calloc(25, sizeof(float)); This statement allocates contiguous space in memory for 25 elements each with the size of float. free() “free” method is used to de-allocate the memory or free the memory which was occupied by using the functions malloc() and calloc(),as they do not de-allocated on their own. Hence the free() method is used, whenever the dynamic memory allocation takes place. It helps to reduce wastage of memory by freeing it. Syntax: free(ptr); realloc() “realloc” or “re-allocation” method is used to dynamically modify the memory allocation of a previously allocated memory. The memory previously allocated with the help of malloc or calloc is insufficient, realloc can be used to dynamically re-allocate memory. Syntax: int*ptr = realloc(ptr, newSize); where ptr is reallocated with new size ‘newSize’

Dynamic Memory Allocation Read More »

Dual booting Windows and Linux using UEFI

Firmware Dual booting is not just a matter of software. Or, it is, but it involves changing your firmware, which among other things tells your machine how to begin the boot process. Here are some firmware-related issues to keep in mind. UEFI vs. BIOS Before attempting to install, make sure your firmware configuration is optimal. Most computers sold today have a new type of firmware known as Unified Extensible Firmware Interface (UEFI), which has pretty much replaced the other firmware known as Basic Input Output System (BIOS), which is often included through the mode many providers call Legacy Boot. Secure Boot One other important setting is Secure Boot. This feature detects whether the boot path has been tampered with, and stops unapproved operating systems from booting. For now, I disabled this option to ensure that I could install Fedora Linux. According to the Fedora Project Wiki Features/Secure Boot Fedora Linux will work with it enabled. This may be different for other Linux distributions. In short, if you find that you cannot install your Linux OS with this setting active, disable Secure Boot and try again. Partitioning the boot drive If you choose to dual boot and have both operating systems on the same drive, you have to break it into partitions. Even if you dual boot using two different drives, most Linux installations are best broken into a few basic partitions for a variety of reasons. Here are some options to consider. GPT vs MBR If you decide to manually partition your boot drive in advance, I recommend using the GUID Partition Table (GPT) rather than the older Master Boot Record (MBR). Among the reasons for this change, there are two specific limitations of MBR that GPT doesn’t have: The EFI system partition If you are doing a fresh installation or using a new drive, there are probably no partitions to begin with. In this case, the OS installer will create the first one, which is the EFI System Partition (ESP). If you choose to manually partition your drive using a tool such as gdisk, you will need to create this partition with several parameters. Based on the existing ESP, I set the size to around 500MB and assigned it the ef00 (EFI System) partition type. The UEFI specification requires the format to be FAT32/msdos, most likely because it is supportable by a wide range of operating systems. Operating System Installation Once you accomplish the first two tasks, you can install your operating systems. While I focus on Windows 10 and Fedora Linux here, the process is fairly similar when installing other combinations as well. Windows 10 I started the Windows 10 installation and created a 20 Gigabyte Windows partition. Since I had previously installed Linux on my laptop, the drive had an ESP, which I chose to keep. I deleted all existing Linux and swap partitions to start fresh, and then started my Windows installation. The Windows installer automatically created another small partition—16 Megabytes—called the Microsoft Reserved Partition (MSR). Roughly 400 Gigabytes of un-allocated space remained on the 512GB boot drive once this was finished. I then proceeded with and completed the Windows 10 installation process. I then rebooted into Windows to make sure it was working, created my user account, set up wi-fi, and completed other tasks that need to be done on a first-time OS installation. Fedora Linux I next moved to install Linux. I started the process, and when it reached the disk configuration steps, I made sure not to change the Windows NTFS and MSR partitions. I also did not change the EPS, but I did set its mount point to /boot/efi. I then created the usual ext4 formatted partitions, / (root), /boot, and /home. The last partition I created was Linux swap. As with Windows, I continued and completed the Linux installation, and then rebooted. To my delight, at boot time the GRand Unified Boot Loader (GRUB) menu provided the choice to select either Windows or Linux, which meant I did not have to do any additional configuration. I selected Linux and completed the usual steps such as creating my user account.

Dual booting Windows and Linux using UEFI Read More »

Difference between constant pointer, the pointer to constant and both pointer to constant and constant pointer

Constant Pointers: A constant pointer is a pointer that cannot change the address its holding. In other words, we can say that once a constant pointer points to a variable then it cannot point to any other variable. Declaration of constant pointer: <type of pointer> * const <name of pointer> An example:                 int * const ptr; An example program: #include<stdio.h> int main() {     int n1 = 0, n2 = 0;     int *const ptr = &n1;     *ptr = 100;//valid     ptr = &n2;//Invalid     printf(“%d\n”, *ptr); } In the above example: We declared two variables n1 and n2 and constant pointer ‘ptr’ was declared and made to point n1. Next, ptr is made to point n2,   then print the value at ptr, but as per the constant pointer the pointer pointing an address cannot be change, so we will get the error mentioned below “ error: assignment of read-only variable ‘ptr’            ptr = &n2; ” but we can change the value at the pointer. Pointer to Constant: A pointer to a constant is a pointer that cannot change the value of the address its holding through the pointer. Declaration of pointer to a constant: <type of pointer> const * <name of pointer>                                     or const <type of pointer>* <name of pointer> An example:                 int const*ptr;                                 or                 const int *ptr; An example program: #include<stdio.h> int main() {     int n1 = 0, n2 = 0;     const int *ptr = &n1;     *ptr = 100;//Invalid     printf(“%d\n”, *ptr);//Invalid     ptr = &n2;//valid     printf(“%d\n”, *ptr); } In the above example:                 We declared two variables n1 and n2 and a pointer to constant ‘ptr’ was declared and made to point n1. Next, ptr is made to dereference, then print the value at ptr, but as per the pointer we cannot dereference, so we got the error mentioned below   error: assignment of read-only location ‘*ptr’      *ptr = 100;//Invalid But we can change the address of the pointer. Both pointer to constant and constant pointer: Both pointer to constant and constant pointer is a pointer that cannot change the address its holding and cannot dereference the value also. Declaration of constant pointer: const <type of pointer> * const <name of pointer> An example:                 const int * const ptr; An example program: #include<stdio.h> int main() {     int n1 = 20, n2 = 10;     const int *const ptr = &n1;     printf(“%d\n”, *ptr);//20     *ptr = 100;//Invalid     ptr = &n2;//Invalid } In the above example:     We declared two variables n1 and n2 , here pointer to constant and constant pointer ‘ptr’ was declared and made to point n1. Next, ptr is made to point n2,   then print the value at ptr, and change the address and dereference the value, both are violating the rules, so we will get the error mentioned below  “ error: assignment of read-only location ‘*ptr’      *ptr = 100;//Invalid           ^  error: assignment of read-only variable ‘ptr’      ptr = &n2;//Invalid ”

Difference between constant pointer, the pointer to constant and both pointer to constant and constant pointer Read More »

Data Types in C

Data types specify how we enter data into our programs and what type of data we enter. C language has some predefined set of data types to handle various kinds of data that we can use in our program. These data types have different storage capacities. C language supports 2 different types of data types: Primary data types(primitive): These are fundamental data types in C namely integer(int), floating-point(float), character(char) and void. Derived data types: Derived data types are nothing but primary data types but a little twisted or grouped like array, structure, union and pointer. These are discussed in detail later. Here we will study primary or primitive datatype Primary data types: The regular integer that we use has 2 bytes size (16 bits) on a 16-bit machine. However, most the modern systems have 32 or 64-bit configurations. The size of an integer in such an environment is 4 bytes. Different data types also have different ranges up to which they can store numbers. These ranges may vary from compiler to compiler. Below is the list of ranges, with the memory requirement and format specifiers on the 32-bit GCC compiler.  DATATYPE: Int TYPE OF DATA: Integer MEMORY SIZE: 2 Bytes RANGE: -32768 to 32767 DATATYPE: Char TYPE OF DATA: Character MEMORY SIZE: 1 Byte RANGE: -128 to 127 DATATYPE: Float TYPE OF DATA: Floating point number MEMORY SIZE: 4 Bytes RANGE: 3.4e-38 to 3.4e+38 DATATYPE: Double TYPE OF DATA: Floating point number with higher precision MEMORY SIZE: 8 Bytes RANGE: 1.7e-308 to 1.7e+308 Program to check size of an datatypes: #include <stdio.h> int main() {          int a = 1;          char b =’G’;          float f = 7.77;          double c = 3.14;           printf(“Hello World!\n”);           printf(“I am a character. My value is %c and “          “my size is %lu byte.\n”, b,sizeof(char));           printf(“I am an integer. My value is %d and “          “my size is %lu bytes.\n”, a,sizeof(int));       printf(“I am a float with single floating point variable.”” My value is %f and   my size is %lu       bytes.\n”,f,sizeof(float));       printf(“I am a double floating point variable.”” My value is %lf and my size is %lu         bytes.\n”,c,sizeof(double));       printf(“Bye! See you soon. :)\n”);          return 0; } The output of the program: Hello World! I am a character. My value is G, and my size is 1 byte. I am an integer. My value is 1, and my size is 4 bytes. I am a float with a single floating point variable. My value is 7.770000, and my size is 4 bytes. I am a double floating-point variable. My value is 3.140000, and my size is 8     bytes. Bye! See you soon. 🙂

Data Types in C Read More »

Pass by Value And Pass by Address

There are two ways to pass arguments to a function — Pass by Value and Pass by Address. The major difference between Pass by Value and Pass by Address is in the pass by value copy of actual arguments is passed to respective formal arguments. While, in the call by reference, the location (address) of actual arguments is passed to formal arguments. Hence, any change made to formal arguments will also reflect in actual arguments. Pass by Value: A copy of actual arguments is passed to formal arguments of the called function, and any change made to the formal arguments in the called function does not affect the values of actual arguments in the calling function. Incall by value, actual arguments will remain safe they cannot be modified accidentally.  #include<stdio.h> void swap (int a, int b) {           int temp;           temp=a;           a=temp;           b=temp;           printf(“a=%d,b=%d”,a,b); } int main() {           int a=10,b=20;           swap(a,b);           printf(“a=%d\n,b=%d\n”,a,b); } output:           a=20,b=10(in function swap)           a=10,b=20(in main function) In the above program, a and b values are updated only in the function and not swap in the main function. Pass by Address: In Pass by address, the location (address) of actual arguments is passed to formal arguments of the called function. That means by accessing the addresses of actual arguments we can alter them within the called function. Alteration to actual arguments is possible within from called function. Therefore, the code must handle arguments carefully else you get unexpected results. #include<stdio.h> void swap (int *a,int *b) {           int temp;           temp=*a;           *a=temp;           *b=temp;           printf(“a=%d,b=%d”,*a,*b); } int main() {           int a=10,b=20;           swap(&a,&b);           printf(“a=%d\n,b=%d\n”,a,b); } output:           a=20,b=10(in function swap)           a=20,b=10(in main function) In the above program, a and b addresses are passed and in the function swap those addresses are received by the pointers updated values are reflected in the main function.

Pass by Value And Pass by Address Read More »

Macros vs Functions

Macros are preprocessed, meaning that all the macros would be executed before the compilation stage. However, functions are not preprocessed but compiled. Example of Macro: #include<stdio.h> #define  A 10 int main() {      printf(“%d”,A);      return 0; }  OUTPUT=10; Example of Function: #include<stdio.h> int A() {     return 10; } int main() {     printf(“%d”, A());     return 0; } OUTPUT=10; Now compile them using the command: GCC –E file_name.c This will give you the executable code as shown below: #include<stdio.h> #define  A 10 int main() {      printf(“%d”,A);      return 0; } #include<stdio.h> int A() {     return 10; } int main() {     printf(“%d”, A());     return 0; } The first program shows that the macros are preprocessed while functions are not. In macros, no type checking (incompatible operand, etc.) is done, and thus, the use of macros can lead to errors/side-effects in some cases. That is not the case with functions. Macros do not check for a compilation error. Macros are usually one-liners. However, they can consist of more than one line, and there are no such constraints in functions. The speed at which macros and functions differ. Macros are typically faster than functions as they don’t involve actual function call overhead. MACRO FUNCTION Macro is Preprocessed  Function is Compiled No Type Checking is done in Macro Type Checking is Done in Function Using Macro increases the code length Using Function keeps the code length unaffected Use of macro can lead to side effects at later stages Functions do not lead to any side effects in any case Speed of Execution using Macro is Faster Speed of Execution using Function is Slower Before Compilation, the macro name is replaced by macro value During function call, transfer of control takes place Macros are useful when small code is repeated many times Functions are useful when large code is to be written Macro does not check any Compile-Time Errors Function checks Compile-Time Errors

Macros vs Functions Read More »

Carbon Nanotube Field Effect Transistor

The present VLSI electronic systems rely on the Silicon MOS (metal oxide semiconductor) technology which advances will soon come to saturation. Carbon nanotubes represent an advancement in the materials technology with the potential for providing switching devices that may be faster and smaller than the present MOS devices. Carbon nanotubes are miniature tube structures with intriguing characteristics. The tube, in the normal untwisted state, conducts electricity. When twisted, the tube acts as a semiconductor.  This transistor is considered one of the greatest inventions of the twentieth century. It has helped to bring about both the information and computing age. One reason for success is its ability to decrease in size and increase in speed. This property is summarized in Moore’s law. It states that the transistor’s size will decrease exponentially while the speed will increase exponentially. Moore’s law has allowed the technology sector to progress and remain competitive. The physical barriers arise due to the continued shrinking of the current transistor used today, the Metal-Oxide Field Effect Transistor or MOSFET. As the size shrinks, the thickness of the insulators reduces. Insulators are used to electronically isolate parts of the transistor. With the thinner insulation, the carriers can quantum-mechanically tunnel across the insulation. The result is a short circuit allowing current to flow directly from the source to drain and then drain to the body. And even though the thin gate oxide, that separates the gate from the channel. In addition, doping becomes a problem since it relies on percentages. If the total amount of atoms gets very small, then a fractional dopant atom might be required, which of course, is impossible. In addition, economic problems arise from producing and maintaining the fabrication lines. One proposed solution is the use of carbon nanotubes instead of silicon to make the transistors. The construction and operation of CNFET are similar to the MOSFETs that we use today, thus giving them the name Carbon Nanotube Field-Effect Transistor or CNFET. Three of the most important characteristics of any transistor are speed, scalability, and power. Speed: The carbon nanotubes unique one-dimensional nature; can utilize ballistic transport. Ballistic transport means that the mean free path is longer than the path. Thus, the charge carriers do not collide, reducing resistance to negligible levels. The result is a capability to achieve speeds of Terahertz or more, compared to today’s processors that operate at 3 gigahertz. Scalability: A group in IBM discovered an interesting property of the CNFETs scalability. While the CNFETs improve with scaling, it is not conventional. They seem to follow the behaviour of Schottky barrier MOSFETs instead of regular MOSFETs. For this reason, the group at IBM feels that the CNFETs limits for scaling are unclear. However, they do note that, in a structured array, the CNFETs will produce enough gain and fan out for real-life applications. In addition to the CNFETs murky limits of scaling, it still will outperform silicon MOSFETs limits of scaling. Power: The same group at IBM compared some properties of the CNFET to both a high-performance silicon MOSFET and a newer MOSFET design that utilize Silicon-On-Insulator (SOI) technology. The results are displayed in table 1. Table 1: Comparison between MOSFET and CNT Circuit FET Delay (in pico second) Power (in micro watt) Inverter CMOS 16.58 9.81 CNT 3.78 0.25 2 Input NAND CMOS 24.32 20.67 CNT 5.98 0.69 2 Input NOR CMOS 39.26 22.13 CNT 6.49 0.48 One important difference is in I(OFF). The CNTFET has a drop of about 70% as compared to the conventional MOSFET. That emphasis on power being wasted while the transistor is off is greatly reduced. In addition, we notice that I(ON), or drive current, is larger than both technologies. In fact, it is three to four times larger. Normally, we would think that this is a bad thing. As our first instinct would mean higher power consumption. However, since the nanotube has ballistic conductance, it actually has a smaller resistance. Thus, the power consumption is the same if not smaller than the current MOSFET design. This is also supported by the two to four times increase in trans-conductance. The real big surprise is that the CNTFET is able to outperform both the current and newer technologies, despite the large gate length and gate oxide thickness. So naturally, when the CNFET design is optimized, the CNTFET will surely outperform the current technology. For these reasons, the CNTFET is a very strong contender to replace the current technology.

Carbon Nanotube Field Effect Transistor Read More »

Enquire Now

Enquire Now

Enquire Now

Please Sign Up to Download

Please Sign Up to Download

Enquire Now

Please Sign Up to Download





    [group student clear_on_hide]

    [/group]

    [group graduated clear_on_hide]

    [/group]

    [group wp clear_on_hide]

    [/group]

    [group student-course clear_on_hide]

    [/group]

    [group graduated-course clear_on_hide]

    [/group]

    [group work-course clear_on_hide]

    [/group]


    Enquiry Form