Hardware Design

DDR SDRAM Controller (doc + Verilog + Testbench)

75

http://www.mediafire.com/file/o3aik4atgie80b2/EE114_Fundamentals_of_Analog_Integrated_Circuit_Design.rar

Advertisements

AHB-Lite Multilayer Switch

46

The  AHB-Lite Multi-layer Interconnect is a fully parameterized High Performance, Low Latency Interconnect Fabric soft IP for AHB-Lite. It allows a virtually unlimited number of AHB-Lite Bus Masters and Slaves to be connected without the need of bus arbitration to be implemented by the Bus Masters. Instead, Slave Side Arbitration is implemented for each Slave Port within the core.

The Multi-layer Interconnect supports Priority and Round-Robin based arbitration when multiple Bus Masters request access to the same Slave Port. Typically arbitration completes within 1 clock cycle

http://www.mediafire.com/file/999cczoi857psc7/ahb3lite_interconnect-master.zip

RV12 RISC-V Processor

The RV12 is a highly configurable single-issue, single-core RV32I, RV64I compliant RISC CPU intended for the embedded market. The RV12 is a member of the Roa Logic’s 32/64bit CPU family based on the industry standard RISC-V instruction set

The RV12 implements a Harvard architecture for simultaneous instruction and data memory accesses. It features an optimizing folded 4-stage pipeline, which optimizes overlaps between the execution and memory accesses, thereby reducing stalls and improving efficiency.

Optional features include Branch Prediction, Instruction Cache, Data Cache, and Debug Unit. Parameterised and configurable features include the instruction and data interfaces, the branch-prediction-unit configuration, and the cache size, associativity, and replacement algorithms. Providing the user with trade offs between performance, power, and area to optimize the core for the application

45

Link : http://www.mediafire.com/file/wvqc7x9ivc36460/RV12-master.rar

Synchronous FIFO Design

1. Giới thiệu về FIFO.

– FIFO rất thường được sử dụng trong các thiết kế, chức nằng chủ yếu là bộ buffer lưu giữ tạm dữ liệu của bạn khi dữ liệu trước đó chưa xử lý xong. Ngoài ra còn được sử dụng để truyền nhận dữ liệu giữa 2 miền clock khác nhau (asynchronous FIFO). Trong hầu hết nhiều đều sử dụng FIFO

– Có hai loại FIFO cơ bản là : FIFO đồng bộ ( synchronous FIFO, read write sử dụng cùng clock) và FIFO bất đồng bộ( asynchronous FIFO, read clock khác write clock) . Trong bài này sẽ nói về thiết kế  FIFO đồng bộ.

– Thông thường để thiết kế FIFO ta thường dùng thanh ghi (Regidters) được để lưu trữ dữ liệu, cách này chỉ áp dụng cho các FIFO cỡ nhỏ vì dùng nhiều thanh ghi rất tốn tài nguyên (resource). Một cách khác là thiết kế FIFO để điều khiển SRAM hai port.

 

2. Nguyên lý hoạt động FIFO

76

                                                                         Figure 1 : Đọc FIFO.

  • Theo Figure 1 trên ta thấy cứ sau một lần đoc thì con trỏ đọc của FIFO tăng lên, đến một lúc nào đó thì hai con trỏ ở cùng một vị trì như hình trên thì FIFO empty( FIFO không còn data). Lúc này wptr = rptr.

#Note : Nhưng ô màu đỏ chứa data chưa được đọc.

77

                                                               Figure 2 : Đọc FIFO.

  • Trong Figure 2 trên ta thấy cứ sau một lần ghi thì con trỏ ghi của FIFO tăng lên, đến một lúc nào đó thì hai con trỏ ở cùng một vị trì như hình trên thì FIFO full. Lúc này wptr = rptr.

  • Khi FIFO full con trỏ ghi = con trỏ đọc, khi FIFO empty thì con trỏ ghi cũng bằng con trỏ đọc. Vậy làm sao để biết lúc nào là full, lúc nào la empty ? .

  • Trong design này sử dụng một cách đơn giản là mở rộng con trỏ đọc và ghi thêm một bit.

Ví dụ : Nếu FIFO có chiều sâu là 8 ô nhớ thì chỉ cần 3 bit địa chỉ là đủ. Trong design này ta sẽ dùng 4 bit cho con trỏ đọc và ghi.( reg [3:0] wptr , reg [3:0] rptr).

  • Trong quá trinh ghi FIFO nếu thỏa điều kiện {~wptr[3],wptr[2:0]} = rptr thi kết luận FIFO full.

  • Còn trong quá trinh ghi FIFO nếu thỏa điều kiện wptr = rptr thi kết luận FIFO empty.

3. IN/OUT

78

                                                                 Figure 3 : Inputs, outputs port

3. Logic Implementation

79

                                                 Figure 4  : Functional blocks.

  • Trong thiết kế FIFO được chia thành ba phần, read control, write control và SRAM dual port (Ta dùng SRAM model cho simulation) .

Read control logic

80

Write control logic

81

Read/Write timing

82

Link code : http://www.mediafire.com/file/38wbunf32uuoqyw/sync_fifo.rar