Team Status Report 2/26

This week didn’t bring us any new risks. As with last week, there are areas of our design that still need to be fleshed out, and they could present unforeseen roadblocks later on. In order to minimize this risk, we will produce a detailed design report that explores all of these possibilities in the next week and a half.

We’ve been working on the deisgn report and that is uncovering some of the stuff we still need to think about. For example the assembler pipeline, the software demo, and the details of the components (i.e. multipliers and dividers). However we have no new big changes to our schedule this week.

After we presented, we talked with our TA about potential risks and mitigations. We came up with basic high level attributes, such as: If the PCB has errors, bodge wires will be used to discretely fix the traces. If the worst happens and the PCB goes up in flames, then we will opt for a software DSKY demo. If our critical path is longer than 200ms, we will weigh the cost/benefits of spending more time optimizing or opting for a slower clock. If some of non-essential instructions are costing us too much time/effort, we will descope them if necessary. Finally, if we are running out of time, we will focus on creating a simple but compact demo that demonstrates the absolute key features of the DSKY.

Jae’s Status Report 2/26

This week I was responsible for watching and filling out the peer reviews for my section, as well as rehearsing and delivering my presentation on Wednesday. Meanwhile, I completed the first revision of the PCB and resolved all the ERC (Electrical Rule Check) for my schematics and DRC (Design Rule Check) for my PCB. I quadruple checked my schematics against all the component datasheets and made sure my design rules were all within specs for PCBWay (our PCB fab). I am currently on track to do another round of final checks and begin the process of sending out the gerber files. In the upcoming week, I will start the purchasing process of the PCB as well as the components from Digikey. With the components/PCB purchased and on route, I will begin the firmware/software development process as I wait.

Christopher’s Status Report 2/26

This week I mostly focused on writing the design review report. I was responsible for writing the abstract, introduction, index words, summary, and project management. I was also expected to contribute to the design requirements, the design trade studies, the system implementation and the test and verification sections in the areas in which I know best about. The reason why I carried a bit more of the writing load is because I did a bit less work on the project than the others this week. In addition to that I have been working on the assembler but haven’t made too much progress. Thus far I am on schedule as my goal for the week was to write a rough draft of the design review report and to do some assembler stuff. Both of which I have done. Next week I will finish up the design review report and then hopefully start actually implementing the assembler changes

Donovan’s Status Report for 2/19

Although I planned to have already finished the remainder of edits to our CPU pipeline diagram, altsyncram megafunction parameters, and AXI clarification, these tasks are ongoing, and I plan to complete them by tomorrow evening.  I developed the early drafts of our high-level system block diagram (to be presented during the design review), which required me to study Jae’s work on the PCB, microcontroller, and serial communication fronts.  Along the way, Jae and I clarified design details regarding I2C communication between the ESP32 microcontroller, the DSKY PCB, and our AGC assembly programs.  We don’t plan to implement interrupt capabilities in our microarchitecture, so we need to write a main program that effectively polls inputs and regularly updates the display when necessary.

Team’s Status Report for 2/19

This week didn’t bring us any new risks. As with last week, there are areas of our design that still need to be fleshed out, and they could present unforeseen roadblocks later on. In order to minimize this risk, we will produce a detailed design report that explores all of these possibilities in the next week and a half.

We’ve been working towards clarifying a selection of demo programs to write and then run on our CPU, along with the user interaction of each. These decisions have allowed us to have a more concrete scope of the instructions that our processor needs to support. Additionally, we now have a rough idea of the amount of AGC assembly code we will need to write, and furthermore how to allocate time in our schedule for writing the demo programs.

Christopher’s Status Report for 2/19

This week I worked on the slides for the design review and talked to my team and changed both the use case of our goal (from actually used to space to a museum) and discussed exactly what our presentation would include. Thus far I am on schedule as my goal for the week was to finish the design review slides and to find the I2C  IP we wanted to use. Fortunately Jae had already found the I2C IP. Next week will be mostly writing the design report. I also want to read the code of the assembler we are gonna use to get more of an idea of where they are storing the code and const’s in memory and how I might be able to interact with that.

Jae’s Status Report 02/19

This week my primary focus on the programs that will be run on the AGC and finishing up the first revision of the PCB. I have been analyzing sample AGC assembly routines and experimenting with certain basic instructions (such as XCHG, MUL, DV,  etc.) to get a feel for how to develop code for our implementation. I have also identified certain subroutines used by the actual Apollo missions that we will be able to run on our architecture with minimal to no changes. This will be a nice demonstration of the correctness of our implementation. Finally, I have more or less finalized the first revision of the board. Next week, I will triple check my schematics and layout and get ready to send the gerber files out to be fabricated. Also, I will continue experimenting with the AGC Assembly language to build some proof-of-concept programs.

Donovan’s Status Report for 2/12

Given that we have settled on using an Altera DE10-Standard dev board to implement the core components of our system, I located its PDF Manual from the Altera website and made a few high-level notes.  This particular dev board has a Cyclone V System-On-Chip (SOC) that includes both an FPGA and an ARM core to run embedded C programs.  I confirmed with Jae that the included GPIO will be sufficient to interface with the DSKY.  I’ve discovered that we’ll need to check our current versions of Quartus and possibly add additional software packages that allow us to write programs and then run them on the included core.  Assuming that we go forward with writing a program that feeds simulated sensor data to our CPU on the FPGA, we’ll need to get familiar with the Advanced eXtensible Interface (AXI) bridge included on the Cyclone V as an interface between the FPGA and core, and I plan to personally do just that in the coming week.

Our current plan specifies the use of Altera’s ‘altsyncram’ megafunction IP to implement our dual-ported RAM and single-ported ROM.  I’ve been reading through the Altera Manual in the efforts of learning how we will use Quartus to generate the modules we need.  The included parameter table has allowed me to make note of exactly how we will configure each parameter to produce the desired functionality of our memory modules.  I plan to finish making note of these in the next few days.

Christopher generated the core structure of our Architecture in schematic form, but I’ve been looking back at our detailed ISA notes to make subtle changes that will permit us to process all of our desired instructions.  These changes have involved re-routing various nets to ensure correctness with pipeline stages as well as adding additional control signals.  Through discussion, we’ve realized that a subset of double word instructions can be added to our scope with little implementation difficulty, so I will be working on ensuring correctness of our architecture for these additional instructions.

Jae’s Status Report for 2/12

This week my tasks included ironing out the specifications for the DSKY interface, setting up the software toolchain for the AGC assembler, and beginning the PCB design process.

I have started setting up a rough software toolchain for us to be able write AGC assembler code and simulate them before running the code on our custom AGC architecture. I wrote an extremely simple program that moved around values in the registers and successfully verified its functionality through a debugger.

Finally, I began the schematics capture process for the PCB. I am on track towards completing a first revision by the end of the coming week. I am constantly keeping track of the availability of components in Digikey to guarantee that I will not be designing around unavailable parts.

Team Status Report for 2/12

This week we were dealing with a few significant risks. The first one was the worry that our PCB would not be ready in time. In order to deal with that we started the layout this week and aim to be done with the preliminary layout in the coming week. Another risk was going into our project without knowing how to do every step and realizing some steps were much harder than we thought. We minimized this risk by doing more research into some of the details of our project so we could have a better idea about our implementation and it’s feasibility

We made some changes to the use case. Our use case is now a museum rather than for actual space travel. We made this change on the recommendation of our advisor. This changes a few things about our project. Firstly we are implementing more of the instruction set to stay more true to the original design. This will increase the difficulty of the cpu pipeline design and implementation (which will consume more time), but it does mean we will be able to use more of the original Apollo programs which will hopefully save us some time.

We started our PCB layout earlier than expected so our schedule now looks like this


A sneak preview of the schematic capture:

A link to our current cpu design is here https://app.diagrams.net/#G1K-aGTft1UyUYiGw6LQ5oJ6zeiqgNk8Xc