so many spelling mistakes.. you could have explained the PPT itself.. and please improve on pronunciations
@keerthianil6807 күн бұрын
May I know the course details?
@SemiDesign4 күн бұрын
Pls contact over 9599745251
@-SnehalK8 күн бұрын
can you please upload remaining part of this project?
@korrarakeshrakesh95408 күн бұрын
Xor
@Narayan_BITSPilani8 күн бұрын
Here is the complete code - " `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: BITS Pilani // Engineer: Narayan // // Create Date: 19.08.2024 23:34:43 // Design Name: Asynchronous FIFO // Module Name: top // Project Name: // Target Devices: // Tool Versions: // Description: // This module implements an Asynchronous FIFO with separate read and write clocks. // It includes logic to handle data synchronization across different clock domains // using Gray code pointers to avoid metastability and synchronization errors. // // Dependencies: None // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module top ( input wr_clk, // Write clock input rd_clk, // Read clock input rst, // Asynchronous reset input wr_en, // Write enable signal input rd_en, // Read enable signal input [7:0] write_data, // Data input for writing to FIFO output reg [7:0] read_data, // Data output for reading from FIFO output wire empty, // Flag to indicate FIFO is empty output wire full // Flag to indicate FIFO is full ); parameter fifo_depth = 8; // FIFO depth is 8, so address pointer will be 3 bits wide parameter add_size = 4; // Address size set to 4 bits to handle full/empty condition // Define the read and write pointers with 4 bits each reg [3:0] wptr, rptr; wire [3:0] wptr_gray, rptr_gray; // FIFO buffer memory of 8 entries, each 8 bits wide reg [7:0] mem [7:0]; // Synchronized write and read pointers (Gray code) reg [3:0] wptr_gray_sync; reg [3:0] wptr_gray_ff1, wptr_gray_ff2; reg [3:0] rptr_gray_sync; reg [3:0] rptr_gray_ff1, rptr_gray_ff2; // Write data into FIFO buffer // This block is triggered by the write clock and checks for write enable and FIFO full conditions always @(posedge wr_clk) begin if (rst) begin // Reset write pointer to zero wptr <= 4'b0000; end else if (wr_en && !full) begin // Write data to the memory at the current write pointer position mem[wptr] <= write_data; // Increment the write pointer wptr <= wptr + 1; end end // Read data from FIFO buffer // This block is triggered by the read clock and checks for read enable and FIFO empty conditions always @(posedge rd_clk) begin if (rst) begin // Reset read pointer to zero rptr <= 4'b0000; end else if (rd_en && !empty) begin // Read data from the memory at the current read pointer position read_data <= mem[rptr]; // Increment the read pointer rptr <= rptr + 1; end end // Convert binary write and read pointers to Gray code // Gray code minimizes the risk of synchronization errors by ensuring only one bit changes at a time assign wptr_gray = wptr ^ (wptr >> 1); assign rptr_gray = rptr ^ (rptr >> 1); // Synchronize the write pointer to the read clock domain // This prevents metastability when comparing pointers across different clock domains always @(posedge rd_clk) begin if (rst) begin // Reset synchronization flip-flops wptr_gray_ff1 <= 0; wptr_gray_ff2 <= 0; wptr_gray_sync <= 0; end else begin // First stage of synchronization wptr_gray_ff1 <= wptr_gray; // Second stage of synchronization wptr_gray_ff2 <= wptr_gray_ff1; // Final synchronized write pointer in read clock domain wptr_gray_sync <= wptr_gray_ff2; end end // Synchronize the read pointer to the write clock domain // This prevents metastability when comparing pointers across different clock domains always @(posedge wr_clk) begin if (rst) begin // Reset synchronization flip-flops rptr_gray_ff1 <= 0; rptr_gray_ff2 <= 0; rptr_gray_sync <= 0; end else begin // First stage of synchronization rptr_gray_ff1 <= rptr_gray; // Second stage of synchronization rptr_gray_ff2 <= rptr_gray_ff1; // Final synchronized read pointer in write clock domain rptr_gray_sync <= rptr_gray_ff2; end end // Calculate the empty condition // The FIFO is empty when the read pointer equals the synchronized write pointer assign empty = (rptr_gray == wptr_gray_sync); // Calculate the full condition // The FIFO is full when the write pointer is one position behind the read pointer, after wrapping around assign full = ((wptr_gray[3] != rptr_gray_sync[3]) && // MSB check to detect wrap-around (wptr_gray[2] == rptr_gray_sync[2]) && // Ensure pointers are aligned except MSB (wptr_gray[1:0] == rptr_gray_sync[1:0])); // Lower bits must match endmodule " if you have any question or want to prepare for an interview @ this project contact me on [email protected]. free of cost guidance. i wrote the entire code on my own, just added the comments by AICheers!!
explanation is awesome, please provide the copy of code in EDA playground
@akhilapp113511 күн бұрын
Mam in reversing the digit question you are using left shift right,so while using left shift we will be appending 0 to the vacant bit right,so how the shifted bit get appending back ,its possible only in bit rotation right
@shilpashreeshekar301812 күн бұрын
Can you please increase the quality of this video it's not clearly seen
@Problem_Solutions_01412 күн бұрын
xnor
@kollasivaramakrishna673214 күн бұрын
Thank you so much very helpful...
@harshitha592914 күн бұрын
which overriding is preferred?
@ELECTROPHILLIC16 күн бұрын
What is j ?
@aboutengineers311820 күн бұрын
Mam Is it free
@navjotkaur931820 күн бұрын
Please share the pdf
@Kamla45420 күн бұрын
can you please send the part1 video link mam
@rishikeshswami295022 күн бұрын
Full state explaination I'm unable to understand....
@math_is_mine23 күн бұрын
Please send Part 1 video link
@rishikeshswami295026 күн бұрын
Sir Testbench for this code ?
@uditgohil754726 күн бұрын
Can we use this example in an interview lullzzz ?
@Devendervlogs8627 күн бұрын
Tq mam
@ncff8427Ай бұрын
Well elucidated ma'am your voice is so sweet
@Narayan_BITSPilaniАй бұрын
Hi what is the name of faculty ?
@SemiDesign28 күн бұрын
Pls share your query
@rishikeshswami295022 күн бұрын
Fifo Full state explaination plss@@SemiDesign
@korrarakeshrakesh9540Ай бұрын
Mam can u send link of counties session pls
@ganeshkiran6232Ай бұрын
I think code is from verification guide
@gomikomi1837Ай бұрын
Thank you for your explaination. It was very helpful.
@nikshithdevarakonda8961Ай бұрын
Can I get that PDF
@user-fk7lr6cl8bАй бұрын
Plz make interview question system verilog also mam ,plz
@user-fk7lr6cl8bАй бұрын
Very helpful videos mam,
@user-fk7lr6cl8bАй бұрын
Mam, in q.18 option b is correct. Plz correct me if iam wrong
@user-fk7lr6cl8bАй бұрын
In q.14 ,unit of delay is correct but they didn't mention about any specific time units , So y don't we take (b) option
@user-fk7lr6cl8bАй бұрын
Mam ,a big thanks for these videos,very helpful for interview preparation
@CallistoPiliАй бұрын
for small Startups or Consultants it is almost impossible to gain advantage of these level of verifications. UVM ans SystemVerilog Assertions cannot be used. there are only a bunch of tools available that cost a fortune, you need a loan to buy a licence. Despite these major issues it is possible to be creative with verification and coverage by using standard code. Usually Universities don't tech that simplified way to help coverage. I've done the SystemVerilog and UVM main specialist course to learn how to validate and verify a digital design, and I never used that stuff to verify my design or at least I never seen company using those advanced Systemverilog stuff.
@ankushkurvey8156Ай бұрын
interested how to apply
@Devendervlogs86Ай бұрын
Tq mam upload more videos based on protocol also send code pdf
@uditgohil7547Ай бұрын
Size of the d_arr1 = 5 Values of d_qrr 1 3 5 7 9 Size of darr2 = 10 Values 1 3 5 7 9 2 4 6 8 10 Size of darr1 equals 0
@YoniSnp1Ай бұрын
Thank you very much for this first session. Will the rest of the sessions be uploaded?
@Rashi-c5fАй бұрын
Intreseted
@macharlaprasad3064Ай бұрын
How i need to find Live classes
@SemiDesignАй бұрын
Contact 9599745251
@srihariprathapaneni3879Ай бұрын
Hi mam, I am really happy with the session and could you please tell me that how to access the PPT....? And thank you in advance mam
@SemiDesignАй бұрын
Will upload soon
@dance_hoofers7757Ай бұрын
Thanku for this workshop .. it is really very helpful .
@explainit-k14Ай бұрын
3rd. XNOR
@PavankumarMachaАй бұрын
can u apload remaining week schedule
@bhikhugodhaniya2615Ай бұрын
Hi UART is full duplex protocol, it's not half duplex protocol can you please update your PPT
@paletivenkatesh1498Ай бұрын
🎉👏
@ramojireddy8161Ай бұрын
time line 24:00 we can't use for loop and increment is not possible in constraints right