a) Given the following C code, design a HLSM. Inputs = 32-bit int A, 1-bit go Outputs Storage = r_A, r_Z %3D = 1-bit done, 32-bit int Z main () { while (!go); done = 0; Z = 0; if (A < 0) {

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
**Q4 - HLSM from C code**

**a) Given the following C code, design a HLSM.**

- **Inputs**: 32-bit int A, 1-bit go
- **Outputs**: 1-bit done, 32-bit int Z
- **Storage**: r_A, r_Z

```c
main() {
    while (!go);
    done = 0;
    Z = 0;
    if (A < 0) {
        A = abs(A);
    }
    while (A > 0) {
        A = A / 2;
        Z += A;
    }
    done = 1;
}
```

**Explanation:**

This C code snippet is used to design a High-Level State Machine (HLSM). It includes the necessary inputs and outputs for the machine and outlines the storage requirements.

- A 32-bit integer `A` is the input, together with a 1-bit `go` signal.
- The output is a 1-bit `done` signal and a 32-bit integer `Z`.
- Storage variables `r_A` and `r_Z` are utilized internally. 

**Code Flow:**

1. The main function starts with a busy-wait loop (`while (!go);`) that pauses execution until the `go` signal is true.
2. The `done` flag is initially set to 0, signifying the process is not complete.
3. `Z` is initialized to 0.
4. If `A` is less than 0, it takes the absolute value of `A`.
5. A while loop runs as long as `A` is greater than 0. Within this loop:
   - `A` is divided by 2.
   - The current value of `A` is added to `Z`.
6. Once the process is complete, `done` is set to 1.
Transcribed Image Text:**Q4 - HLSM from C code** **a) Given the following C code, design a HLSM.** - **Inputs**: 32-bit int A, 1-bit go - **Outputs**: 1-bit done, 32-bit int Z - **Storage**: r_A, r_Z ```c main() { while (!go); done = 0; Z = 0; if (A < 0) { A = abs(A); } while (A > 0) { A = A / 2; Z += A; } done = 1; } ``` **Explanation:** This C code snippet is used to design a High-Level State Machine (HLSM). It includes the necessary inputs and outputs for the machine and outlines the storage requirements. - A 32-bit integer `A` is the input, together with a 1-bit `go` signal. - The output is a 1-bit `done` signal and a 32-bit integer `Z`. - Storage variables `r_A` and `r_Z` are utilized internally. **Code Flow:** 1. The main function starts with a busy-wait loop (`while (!go);`) that pauses execution until the `go` signal is true. 2. The `done` flag is initially set to 0, signifying the process is not complete. 3. `Z` is initialized to 0. 4. If `A` is less than 0, it takes the absolute value of `A`. 5. A while loop runs as long as `A` is greater than 0. Within this loop: - `A` is divided by 2. - The current value of `A` is added to `Z`. 6. Once the process is complete, `done` is set to 1.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY