Jason Bakos
Jason Bakos
  • 194
  • 37 957
CSCE 611 Fall 2024 Lecture 9: RISC-V Microarchitecture 3
Topics:
(1) Quiz 2 and 3 solutions
(2) Exam 1 topics
(3) Review of RISC-V RIU instructions
(4) RISC-V branch and jump
(5) RISC-V B- and J-type instructions
Переглядів: 120

Відео

CSCE 611 Fall 2024 Lecture 8: RISC-V Microarchitecture 2
Переглядів 17028 днів тому
Topics: (1) Datapath and control (2) 3-stage pipeline (3) Implementing control logic for example instructions
CSCE 611 Fall 2024 Lecture 7: RISC-V Microarchitecture 1
Переглядів 403Місяць тому
Topics: (1) Review of registers and RAM in SystemVerilog (2) Structure of RISC-V design hierarchy (3) RISC-V register file and ALU (4) RISC-V fetch stage (5) RISC-V encoding formats
CSCE 611 Fall 2024 Lecture 6: HDL Design 4
Переглядів 142Місяць тому
Topics: (1) SystemVerilog always statement (2) Testbench design (3) Latches, flip-flops, registers, and RAM (4) RISC-V register file
CSCE 611 Fall 2024 Lecture 5: HDL Design 3
Переглядів 214Місяць тому
Topics: (1) The SystemVerilog always statement (2) Testbench design
CSCE 611 Fall 2024 Lecture 4: HDL Design 2
Переглядів 157Місяць тому
Topics: (1) Structural and behavioral SystemVerilog (2) The "logic" type (3) The "assign" statement (4) SystemVerilog Operators (5) QuestaSim (6) Quartus (7) Lab skeleton and course scripts
CSCE 611 Fall 2024 Lecture 3: HDL Design 1
Переглядів 375Місяць тому
Topics: (1) HDL: abstraction, hierarchy, and regularity (2) Behavioral and structural HDL (3) Simulation and synthesis (4) SystemVerilog syntax
CSCE 611 Fall 2024 Lecture 2: RISC-V and RARS
Переглядів 4462 місяці тому
Topics: (1) Overview of RISC-V assembly programming (2) Fixed-point representation (3) Use of the RARS editor, assembler, and debugger (4) Live demo of a divide-by-powers-of-10 code using fixed-point multiplication (5) Description of Lab 1
CSCE 611 Fall 2024 Lecture 1: Introduction
Переглядів 3 тис.2 місяці тому
Syllabus Course objectives Why study hardware design Field Programmable Gate Arrays (FPGAs) Hardware Description Language (HDL) Architecture vs microarchitecture Assembly language programming RISC-V vs MIPS Fixed-point representation
CSCE 611 Fall 2023 Lecture 17: Final exam review
Переглядів 10811 місяців тому
Final exam review
CSCE 491 Fall 2023 Lecture 12: Real-Time Systems and Scheduling
Переглядів 7111 місяців тому
Topics: (1) Real-time scheduling (2) Periodic scheduling (3) Preemptive scheduling (4) EDF and RMS scheduling (5) Multi-processor scheduling: partitioned and global
CSCE 611 Fall 2023 Lecture 16: CMOS Design 3
Переглядів 13011 місяців тому
Topics: (1) RC switch delay models (2) Propagation and contamination delay (2) Memory arrays
CSCE 611 Fall 2023 Lecture 15: CMOS Design 2
Переглядів 8111 місяців тому
Topics: (1) MOSFET operating regions (2) DC I-V response (3) Parasitic capacitance
CSCE 611 Fall 2023 Lecture 14: CMOS Design 1
Переглядів 9911 місяців тому
Topics: (1) Noise margin (2) Semiconductors (3) n- and p- channel devices (4) CMOS logic
CSCE 491 Fall 2023 Lecture 11: Control Theory 3
Переглядів 23311 місяців тому
Topics: (1) Discrete control: convert from S-domain to Z-domain (2) Z-transform and inverse Z-transform (3) State space
CSCE 611 Fall 2023 Lecture 13: Digital Building Blocks
Переглядів 109Рік тому
CSCE 611 Fall 2023 Lecture 13: Digital Building Blocks
CSCE 611 Fall 2023 Lecture 12: Timing Analysis 2
Переглядів 75Рік тому
CSCE 611 Fall 2023 Lecture 12: Timing Analysis 2
CSCE 611 Fall 2023 Lecture 11: Timing Analysis
Переглядів 111Рік тому
CSCE 611 Fall 2023 Lecture 11: Timing Analysis
CSCE 491 Fall 2023 Lecture 10: Control Theory 2
Переглядів 113Рік тому
CSCE 491 Fall 2023 Lecture 10: Control Theory 2
CSCE 611 Fall 2023 Lecture 10: Sequential Logic
Переглядів 122Рік тому
CSCE 611 Fall 2023 Lecture 10: Sequential Logic
CSCE 491 Fall 2023 Lecture 9: Control Theory 1
Переглядів 317Рік тому
CSCE 491 Fall 2023 Lecture 9: Control Theory 1
CSCE 611 Fall 2023 Lecture 9: RISC-V Branch and Jump Instructions
Переглядів 196Рік тому
CSCE 611 Fall 2023 Lecture 9: RISC-V Branch and Jump Instructions
CSCE 491 Fall 2023 Lecture 8: Avalon IP Design
Переглядів 120Рік тому
CSCE 491 Fall 2023 Lecture 8: Avalon IP Design
CSCE 611 Fall 2023 Lecture 8: RISC-V HDL Design
Переглядів 572Рік тому
CSCE 611 Fall 2023 Lecture 8: RISC-V HDL Design
CSCE 611 Fall 2023 Lecture 7: Microarchitecture 2
Переглядів 226Рік тому
CSCE 611 Fall 2023 Lecture 7: Microarchitecture 2
CSCE 611 Fall 2023 Lecture 6: Microarchitecture 1
Переглядів 177Рік тому
CSCE 611 Fall 2023 Lecture 6: Microarchitecture 1
CSCE 491 Fall 2023 Lecture 7: SystemVerilog Review
Переглядів 72Рік тому
CSCE 491 Fall 2023 Lecture 7: SystemVerilog Review
CSCE 491 Fall 2023 Lecture 6: Lab 2 Description
Переглядів 126Рік тому
CSCE 491 Fall 2023 Lecture 6: Lab 2 Description
CSCE 611 Fall 2023 Lecture 5: Testbenches and FPGA Deployment
Переглядів 140Рік тому
CSCE 611 Fall 2023 Lecture 5: Testbenches and FPGA Deployment
CSCE 611 Fall 2023 Lecture 4: SystemVerilog 2
Переглядів 205Рік тому
CSCE 611 Fall 2023 Lecture 4: SystemVerilog 2

КОМЕНТАРІ

  • @biswajit681
    @biswajit681 Місяць тому

    Camera man needs a pay cut immediately

    • @JasonBakos
      @JasonBakos Місяць тому

      I fired him in Spring 2020!

  • @9fa4108f
    @9fa4108f Місяць тому

    What font are you using in your Terminal?

  • @ivolol
    @ivolol Місяць тому

    Ubuntu probably has a headless java installed Interesting, it seems University of Quebec has continued developing RARS, they made a 1.7 version at rarsm/rars

  • @ivolol
    @ivolol Місяць тому

    You'll probably write assembly that one time when you have a critical piece of code, and the compiler is doing something absolutely funky / refuses to optimise, and you spend 2 days figuring out just the right instructions... but in the end your hot loop now runs 30x faster

  • @VincentDBlair
    @VincentDBlair 2 місяці тому

    This is great! Thank you.

  • @enzoding7558
    @enzoding7558 2 місяці тому

    do we have a course website?

    • @JasonBakos
      @JasonBakos 2 місяці тому

      Yes, it's at dropbox.cse.sc.edu (requires login).

  • @EndAtDay
    @EndAtDay 3 місяці тому

    47:41 C++ can do `int a, b, c;`.

  • @tijuthomas6793
    @tijuthomas6793 Рік тому

    Awesome yt channel, ur videos are easy to understand and flow .. well presentation and clear explanation keep upload sir...

  • @heisenbergs9415
    @heisenbergs9415 Рік тому

    Great class

  • @AriKath
    @AriKath Рік тому

    Sweet

  • @gaborm4767
    @gaborm4767 Рік тому

    Hi Jason, I really want a JTAG test device, e.g. SN74BCT8373, but unfortunately not really available, especially not in DIP packaging. Do you have experience with this or something similar or could you recommend something that I could use while developing a JTAG host program? Br. Gábor. Greetings from Hungary.

    • @JasonBakos
      @JasonBakos Рік тому

      To confirm that I understand, you're looking for device to use as a "design under test (DUT)" that would act as a JTAG slave to assist you in designing a JTAG master that interacts with this; am I correct? The device you mentioned, the SN748373, is an 8-bit latch but does not appear to include a JTAG Test Access Port (TAP), since it doesn't have a TMS, TDI, and TCK inputs and a TDO output. I would recommend using an open source TAP design (opencores.org/projects/jtag) and run it under a simulator, such as Verilator.

    • @gaborm4767
      @gaborm4767 Рік тому

      Yes, correct. SN74BCT8373. I will look into this simulator. Thank you!

  • @jumeldipancaputra87
    @jumeldipancaputra87 Рік тому

    Thanks for this Lecture. From Jakarta Indonesia

  • @Clark-Mills
    @Clark-Mills Рік тому

    A rather useful overview of the RISC-V register architecture and assembly instructions / quirks, thank you. Old: Z80 / 6502 dude

  • @fjs1111
    @fjs1111 Рік тому

    Excellent Jason - thank you

  • @fjs1111
    @fjs1111 Рік тому

    excellent thank you

  • @fjs1111
    @fjs1111 Рік тому

    I really found this helpful Jason, thank you

  • @ethanhang7415
    @ethanhang7415 2 роки тому

    22:58 that was a good blooper haha

  • @AhmedAbdalla-ui6du
    @AhmedAbdalla-ui6du 2 роки тому

    Thank you very much 🙏 🌷

  • @JasonBakos
    @JasonBakos 3 роки тому

    @6:33 Correction: slli rd, rs1, immediate # R[rd] = R[rs1] << immediate srai rd, rs1, immediate # R[rd] = (signed)R[rs1] >> immediate srli rd, rs1, immediate # R[rd] = (unsigned)R[rs1] >> immediate @6:57 Correction: add: bne rs1, rs2, offset # if (R[rs1]!=R[rs2]) PC += sext(offset) modify: jalr rd, offset(rs1) # t=PC+4; PC += (R[rs1]+sext(offset)&~1); R[rd] = t

  • @kittygalaxybedazzle839
    @kittygalaxybedazzle839 3 роки тому

    I love you daddy

  • @kittygalaxybedazzle839
    @kittygalaxybedazzle839 3 роки тому

    Yass daddy

  • @kittygalaxybedazzle839
    @kittygalaxybedazzle839 3 роки тому

    Go daddy!

  • @JasonBakos
    @JasonBakos 3 роки тому

    @13:22 I have some sloppy coding for the calculcation of the JALR target. Remember that our RISC-V CPU is word address (as decision I regret in hindsight). The original code was shown as: assign jalr_offset = instruction_EX[31:20]; assign jalr_addr = readdata1_EX[11:0] + jalr_offset[11:2]; There are two issues with this code. (1) The second line adds a 12 bit value to a 10-bit value, which leaves the decision of whether to sign extend the second operand to the compiler. I'm not sure if Modelsim/Verilator would sign extend or zero-extend the second operand, but I think that unless you declared jalr_offset as: logic signed [11:0] jalr_offset; ...I assume it will treat this signal as unsigned and zero-extend in the addition. (2) The address stored in R[rs1] is a byte address and should be converted to a word address. The proper code should therefore be: assign jalr_offset = instruction_EX[31:20]; assign jalr_addr = (readdata1_EX[13:2] + {2{jalr_offset[11]}},jalr_offset[11:2]}; I'm sorry for the confusion.

  • @JasonBakos
    @JasonBakos 4 роки тому

    Corrections: @5:28 I meant to say "shift right logical *immediate*". @22:32 While the assembler does expand the nop instruction to the addi x0,x0,0 instruction, the 0x00000000 machine instruction doesn't map to addi x0,x0,0 instruction.

  • @JasonBakos
    @JasonBakos 4 роки тому

    Correction: at @28:13 slide header should be "Comparator" not "Shifter"

  • @JasonBakos
    @JasonBakos 4 роки тому

    @00:08 "synchronous" is mispelled on the list of topics! Sorry!

  • @JasonBakos
    @JasonBakos 4 роки тому

    I'm sorry for the strange letterboxing on this video. Somehow, the video size was set to a nonstandard aspect ratio, causing the letterboxing. I'm sorry I missed this prior to posting.

  • @arduinoguru6015
    @arduinoguru6015 4 роки тому

    which software for system verilog

    • @JasonBakos
      @JasonBakos 4 роки тому

      Modelsim Intel edition (freely available, I believe) and Verilator both support SystemVerilog, although Verilator doesn't have full support. Icarus does not support SystemVerilog at all, but does support Verilog.

  • @JasonBakos
    @JasonBakos 4 роки тому

    @2:27 Correction: That should be 100 nanojoules per flop for the 328p, so it's only 2000 times less efficient than Summit.