Thursday, May 26, 2016

Network and WiFi Connection Issues on a New Ubuntu Machine

When setting up a new ubuntu machine, if you encounter an issue that only allows the machine to connect via ethernet, consider these solutions to gain the ability to discover and connect to WiFi networks.

** You must be connected to the internet (via ethernet) to run these commands **

In the terminal, run the following commands to update hardware and driver files necessary to discover and connect to WiFi networks:

          sudo apt-get update
          sudo apt-get install bcmwl-kernel-source
          sudo apt-get install firmware-b43-installer

A reboot will likely be necessary to observe the changes made. 



Note: If these commands do not work for you, it may be because some drivers are specific to the machine you are using. To find out what installs and updates will be needed for your specific machine, type the command, lspci in the terminal, locate the type of Network Controller you have, and search online for the drivers you would need based on your network controller. For example, my machine's network controller is: Broadcom Corporation BCM4321

Friday, May 20, 2016

Key Terms Notes -- Chapter 2 (Zynq Book)


  • Application Processing Unit (APU)
    • comprised of two ARM processing cores (each with associated computational units: a NEON Media Processing Engine (MPE) and Floating Point Unit (FPU))
    • ARM can operate at up to 1 GHz
      • Each core contains separate Level 1 caches
        • One for data, one for instructions
        • Both are 32 KB
        • permits local storage of frequently required data and instructions for fast access times and optimal processor performance
      • Both ARM cores SHARE a larger 512 KB Level 2 cache for instructions and data
    • Snoop Control Unit (SCU)
      • undertakes several tasks relating to interfacing between the processors and the Level 1 and Level 2 cache memories 
      • snooping is one of several mechanisms for ensuring cache coherency or managing the consistency of data across shared cache resources
      • A cache is place to temporarily store information in a computing environment; thus speeding up access times

Thursday, May 19, 2016

Key Terms Notes -- Chapter 1 (Zynq Book)


  • System on Chip (SoC): 
    • Upgrade over PCBs, lower cost, faster and more secure data transfers between various system elements
    • In direct competition with system on board designs where everything is more spread out, taking longer to communicate with other components
    • Can combine all aspects of a digital system: processing, high-speed logic, interfacing memory
    • Think of a computer with memory, processing unit, arithmetic unit, GPU all as different boards/chips
    • The Zynq 7000 design incorporates all those components on a single chip
    • Any PMOD, HDMI port, audio port, can be routed to the the programmable logic on the SoC, but these peripherals are not specifically part of the SoC (just connected to it)
  • Zynq Architecture:
    • Has two main parts; the processing system (PS) and the programmable logic (PL)
    • The PS is formed around a dual-core ARM Cortex-A9 processor (Zedboard)
      • supports software subroutines and operating systems (like Linux for us)
      • Memory is connected to the Processor INSIDE the processing system via AXI
      • On the processor itself sits applications. the operating system, and hardware interfacing --> called the SOFTWARE STACK
      • ARM is a hard processor -- it exists as a dedicated and optimised silicon element on the device
        • In opposition to a soft processor like the MicroBlaze where the processor is created out of PL
        • hard processors have greater performance 
        • can create multpile instances of "soft" processors in logic
          • role of coordinating specific low level functions within the system; less demanding tasks which can be delegated away from the ARM
    • The PL is equivalent to an FPGA
      • ideal fro implementing high-speed logic, arithmetic and data flow subsystems
    • Zynq features integrated memory, peripherals, and high speed communications interfaces
    • Depending on the application, the PS or PL might be more suitable for the job and each can be appropriately partitioned 
  • AXI Connections (keep adding)
    • Links between the PL and PS are made using industry standard Advanced eXtensible Interface (AXI) connections
  • Peripherals
    • Components residing away from the processor; have three functions
    • discrete functional blocks that can be designed, tested, and integrated into the system and also packaged for later use
      • coproceesors--elements that supplement the primary processor, usually optimized for a certain task (my guess is an HLS block at this stage)
      • cores that interact with external interfaces like push buttons, LEDs, or DIPS switches
      • additional memory elements
  • Intellectual Property
    • functional blocks (peripherals in the PL connected to the PS via AXI)
    • can be designed in one project then reused in another (HLS pre-filter block)
      • accelerates design process
    • Xilinx tools have an entire library for Zynq IP
    • Other open source IP coming from the web (audio codec I tried)
    • must be properly integrated into hardware design
    • IP-XACT = indsutry standard for packaging IP

Wednesday, May 18, 2016

Other Git Commands

To set up a Github repo to be accessed by others and yourself, go to Github.com.


  1. Go through the steps for setting up an account and then create a new repository.
  2. Write the ReadMe explaining what exactly the repo will be containing.
  3. In the terminal where you want the repo to be saved locally, type git clone <http link from github>
  4. Manually copy the files from your machine to the local directory you just created using git clone and then type "git add ." (Yes the period is necessary to add ALL of the files that have been copied to the directory.
  5. Type git commit -am "string describing what you are committing (you choose this)"
  6. Type git push

Monday, May 2, 2016

Github Repository - Angle Encoder Hardware/Software

https://github.com/mf06engl/Angle_Encoder

In order to access this repository:

1. Ensure git is installed as a package on your file system: sudo yum install git on the command line
2. Navigate to the directory on your file system you want the repo saved.
3. Type: git clone https://github.com/mf06engl/Angle_Encoder