V-Codes
V-Codes
  • 17
  • 247 371
How to use AMD Vivado's IP Catalog to create a Block RAM
Learn how to create a new project in AMD Vivado and then generate a Block RAM IP from the built in IP's provided by AMD. Also learn how you can initialize the contents of the BRAM. The testbench code is used to verify that the design is working well.
Get the testbench code from here: vhdlguru.blogspot.com/2010/10/how-to-use-coe-file-for-initializing.html
Hope this is useful for you. If you want 1 on 1 tutoring in the field of FPGA programming, get in touch with me.
00:00 Introduction
00:45 Creating a new project in AMD Vivado
02:30 Creating BRAM from IP Catalog
07:50 How to initialize the BRAM IP with coe file?
14:08 Testing the Block RAM
Link to my VHDL Blog: vhdlguru.blogspot.com/
Link to my Verilog Blog: verilogcodes.blogspot.com/
Переглядів: 2 142

Відео

Find out What's Wrong with this VHDL code for RAM #2 of [Test Your VHDL Coding Skills]
Переглядів 3142 роки тому
Try and see if you can correct the mistake in the VHDL code. If not, no worries. The solution to the problem is also within the video. Download the VHDL file used in this video from here: drive.google.com/drive/folders/17zekqMDcapFALyM2oiJlV3nlsxoLzTlo?usp=sharing 0:00 - Introduction 0:32 - Explanation of RAM code 3:25 - Synthesis Results 5:27 - Solution 7:30 - Synthesis Results for the Solutio...
Generic Sine Wave Generator (LUT Based) in VHDL
Переглядів 4,8 тис.2 роки тому
In this video, I want to share and explain a LUT based Sine wave generator. The code is written so that it can be easily changed to generate different frequencies. The online tool for generating Sine values: www.daycounter.com/Calculators/Sine-Generator-Calculator.phtml VHDL Sine wave generator with testbench: drive.google.com/drive/folders/1KdR6KzqRmVuGH2LHSCLFHuHQzaTgW33m?usp=sharing Link to ...
[Ripple Carry Adder] Writing a Self-Checking Testbench in VHDL - #3 Of Testbench Series
Переглядів 2 тис.2 роки тому
In this video I will be sharing and explaining VHDL for a 4 bit Ripple Carry Adder and its testbench. The testbench will test the RCA for all its available inputs and check if there is an error "Automatically". Download VHDL codes from here: drive.google.com/drive/folders/1oTZdfL_nAcppFrgyEuzThCytyHwvoQJr?usp=sharing 00:00 - Introduction 00:29 - 4 bit RCA VHDL code 03:44 - Testbench 09:33 - Sim...
How to write multiple VHDL entities in the same file - VHDL Tips & Tricks
Переглядів 2,6 тис.2 роки тому
The video shows what exactly it says in the title. Short and precise. Shown with the help of a very simple example for beginners to understand how it works! Download the final code from here: drive.google.com/file/d/14JJoBVwGO5jEKrLMcTg3nvTkzsm-_fAi/view?usp=sharing
Signal not being set correctly inside a VHDL process #1 of [Test Your VHDL Coding Skills]
Переглядів 8342 роки тому
Try and see if you can correct the error in the VHDL code. If not, no worries. The solution to the problem is also within the video. Download the VHDL file used in this video from here: drive.google.com/file/d/1HodGn0E6LHJyu3o9sn-IBsWJESAXhGHE/view?usp=sharing 0:00 - Introduction 0:31 - VHDL code snippet 1:02 - Simulation 1:22 - Solution [Sorry for the re-upload, as the first one came out weird]
[Part 2] Synthesizable Digital Clock with 7 segment Display Decoder and Testbench in VHDL
Переглядів 2,4 тис.2 роки тому
This video is an extension of the previous video, where we discussed a Digital Clock VHDL code. In this extension project I want to convert the digital clock outputs to BCD digits and then pass it to a 7 segment decoder function so as to be able to make use of the 7 segment displays on FPGA boards. I have tested the module with the help of a testbench which I have simulated in Xilinx ISE 14.7. ...
[Part 1] Synthesizable Digital Clock with Testbench and Simulation in VHDL
Переглядів 4,4 тис.2 роки тому
In this video I wanted to explain the working of a Digital clock in VHDL. This clock has an additional feature of being able to adjust its time as well. I have tested the module with the help of a testbench which I have simulated in Xilinx ISE 14.7. Get the VHDL codes from my blog post: vhdlguru.blogspot.com/2022/04/digital-clock-with-ability-to-set-time.html Contents of this video: 0:00 - Intr...
Writing a Testbench with a Clock in VHDL - #2 Of Testbench Series
Переглядів 6 тис.2 роки тому
In this video, I will show you how to write a testbench in VHDL for testing an entity with a Clock. The entity we are testing is just an AND gate. And the AND gate output is worked out at the positive edge of the clock cycle. The coding is done and tested on Xilinx ISE. Download the VHDL codes in this video from here: drive.google.com/drive/folders/1gFg1sb0Jw1HaUi88Fb68GPtZwJAA4lFJ?usp=sharing
Writing a simple Testbench in VHDL - #1 Of Testbench Series
Переглядів 15 тис.2 роки тому
In this video, I will show you how to write a testbench in VHDL. This is super beginner level testbench, where the entity we are testing is just an AND gate. Nonetheless it will give you a good introduction to this topic. The coding is done and tested on Xilinx ISE. Download the VHDL codes in this video from here: drive.google.com/drive/folders/1fL61ykPSBleGIS3Qvkth88B7GoS1U831?usp=sharing
How to Find Fractional Square Root Of a Number with VHDL/Verilog
Переглядів 5 тис.3 роки тому
Finding square root of fixed point number is not that difficult. You can simply use an existing integer square root module with very few changes to do the same. Square root calculator: VHDL - vhdlguru.blogspot.com/2020/12/synthesizable-clocked-square-root.html Verilog - verilogcodes.blogspot.com/2020/12/synthesizable-clocked-square-root.html Document Explained in the Video - drive.google.com/fi...
Writing a Gate Level VHDL design (and Testbench) from Scratch
Переглядів 1,5 тис.3 роки тому
This video is for Beginners in VHDL. How could you write a VHDL code for a logic circuit diagram along with its testbench. Step by step process to get your code working in no time. The codes can be downloaded from my VHDL blog post : vhdlguru.blogspot.com/2020/11/writing-gate-level-vhdl-design-and.html I am using the free student version of Modelsim for this. VHDL Tutorial Blog: vhdlguru.blogsp...
Synthesizable Matrix Multiplication in VHDL
Переглядів 5 тис.3 роки тому
The VHDL code is available from my Blog : vhdlguru.blogspot.com/2020/11/synthesizable-matrix-multiplier-in-vhdl.html The video simply explains the code and how it can possibly be converted for handling different sized matrices. I have used Modelsim SE for testing the code. VHDL Tutorial Blog: vhdlguru.blogspot.com/ Verilog Tutorial Blog: verilogcodes.blogspot.com/
Simulating a VHDL/Verilog code using Modelsim SE.
Переглядів 20 тис.3 роки тому
ModelSim is a very popular simulation tool among VHDL/Verilog programmers. In this video I try to show you how to compile and simulate a simple VHDL code. The method is the same even if the codes are in Verilog. I am using the free student version of Modelsim for this. VHDL Tutorial Blog: vhdlguru.blogspot.com/ Verilog Tutorial Blog: verilogcodes.blogspot.com/
Online Automatic Testbench Generator For VHDL and Simulation Using Xilinx Vivado
Переглядів 9 тис.4 роки тому
In this video, I would like to show you how to create an automatic testbench for your VHDL design. The design code and the automatically generated testbench is then tested using the Xilinx Vivado 2019.2 tool. Automatic Testbench Generator For VHDL fro Doulos: www.doulos.com/knowhow/perl/testbench_creation/ A list of VHDL codes for you try your hands on from: vhdlguru.blogspot.com/p/example-code...
How to Simulate a VHDL/Verilog code on Xilinx Vivado 2019.2
Переглядів 81 тис.4 роки тому
How to Simulate a VHDL/Verilog code on Xilinx Vivado 2019.2
How to compile and simulate a VHDL code using Xilinx ISE
Переглядів 84 тис.8 років тому
How to compile and simulate a VHDL code using Xilinx ISE

КОМЕНТАРІ

  • @vihashartandcraft
    @vihashartandcraft 2 дні тому

    differencew between AXI BRAM and block memory generator(both are bram only)

  • @ObaidUllah-hk6tj
    @ObaidUllah-hk6tj 2 місяці тому

    how to read data from coe file

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

    This was a great explanation video. Can you try creating a video with self checking testbench of a slightly complex module.

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

    i have a machine code in a txt file i would like to convert it to a .coe file, do you know anything i can use to do that?

  • @DivyaSree-410
    @DivyaSree-410 3 місяці тому

    i understood very well thanks for the videos

  • @adlaistevenson146
    @adlaistevenson146 4 місяці тому

    The signal speed in my simulation needed to be modified to work. You have your clock period at 10ns and are changing your addr every 10ns but I needed several clocks for each read. It's like my BRAM device was slower, but I used the same settings as you. Could my Verilog code effect that?

    • @adlaistevenson146
      @adlaistevenson146 4 місяці тому

      oh wait a minute, my settings are different than yours, it's a 512 x 8 so has 9 address lines, that would change the timing.

  • @adlaistevenson146
    @adlaistevenson146 4 місяці тому

    I have followed your video and added the BRAM Block from the Vivado Catalog to my Verilog design. I am not doing the COE initialization, how would that work if the design was programmed to an FPGA board? It seems the COE data file needs to come from the Vivado environment, so the FPGA board will not have this.

    • @VCodes
      @VCodes 4 місяці тому

      hi. the contents of the coe file is already processed during compilation. So the generated bit file already contains the values given in the coe file.

  • @adlaistevenson146
    @adlaistevenson146 4 місяці тому

    Thank You for the nice video, but I don't understand why it generated VHDL code, was that selected somewhere that I missed? Could I select Verilog instead?

    • @VCodes
      @VCodes 4 місяці тому

      Hi, not all IP cores have the generated code in both VHDL and Verilog. The available language(s) can be seen from the IP data sheet. For this particular IP, its only available for VHDL. But it doesnt matter, you can instantiate the IP in Verilog top module too. Just keep in mind the size and name of the input and output signals of the IP.

    • @adlaistevenson146
      @adlaistevenson146 4 місяці тому

      @@VCodes OK I think I will try to do what you suggest, to use the BRAM in a verilog design. Thanks!

  • @R4tlehed
    @R4tlehed 5 місяців тому

    thank you man , i just got a project to do on a basys 3 board and i had no idea how to do such simulation ( teacher has no time to explain everything on a study by correspondence ) and i have only week or two to do a project without a board . Anyways you just saved me with that simulation guide

    • @VCodes
      @VCodes 5 місяців тому

      so glad to hear that. I do teach for a fee when there is a request. so, if things get really troublesome in the future you can always ask me for guidance.

  • @srikanthchowdary7068
    @srikanthchowdary7068 6 місяців тому

    Hii sir how can i contact you

    • @VCodes
      @VCodes 6 місяців тому

      my email is available here: vhdlguru.blogspot.com/p/contact-me_23.html

  • @sokullumahmutpasa6651
    @sokullumahmutpasa6651 6 місяців тому

    thanks

  • @siddhantbalkawade4728
    @siddhantbalkawade4728 6 місяців тому

    sir , can you please share the specifications ?

    • @VCodes
      @VCodes 6 місяців тому

      what do you mean by specifications?

    • @adlaistevenson146
      @adlaistevenson146 4 місяці тому

      He has kindly provided the source code on his website, you should look there. And Thanks to VCodes for his good work!

  • @KushagraMishra12
    @KushagraMishra12 7 місяців тому

    Can you please tell me whether this code can be used for Basys 3 FPGA?

    • @VCodes
      @VCodes 7 місяців тому

      it can be used. but not directly as inputs and outputs are 72 bits each. so you would need to write a wrapper to input numbers in multiple stages. and also show the output in multiple stages. like you set the switches, push a button and then change the switches and so on.

    • @KushagraMishra12
      @KushagraMishra12 7 місяців тому

      @@VCodes Can you provide me the code if possible?

    • @VCodes
      @VCodes 7 місяців тому

      I dont have the code readymade for this. but you can write up a state machine for this. if you attempt it, I can guide you through the process. but I do charge a fee for my time. send me an email if you want.

  • @adelingt
    @adelingt 7 місяців тому

    exceptional tutorial. Best I've seen. There are only 3 things to keep in mind: signal declaration before the first begin, instantiation (port mapping), then process to update in time the inputs.

  • @danny_racho
    @danny_racho 7 місяців тому

    Ehm why do you have the word "verilog" in the title, if it's just vhdl? This is absurd..

    • @VCodes
      @VCodes 7 місяців тому

      Thats deliberately put there because the steps involved in simulating a verilog code is not much different than vhdl. Did you try following the steps mentioned in the video?

  • @yassinekhlaf2053
    @yassinekhlaf2053 9 місяців тому

    thank you it helps so much

    • @VCodes
      @VCodes 8 місяців тому

      You're welcome!

  • @felipeferreira1960
    @felipeferreira1960 10 місяців тому

    Very helpful video

    • @VCodes
      @VCodes 8 місяців тому

      Glad to hear that

  • @LNguyen921
    @LNguyen921 10 місяців тому

    thank you for the tutorial! was very clear and easy to follow.

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

  • @sundramkumar5655
    @sundramkumar5655 11 місяців тому

    please explain the steps involved in getting the rom values from matlab

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

    How to compute the inverse of the square root?

    • @VCodes
      @VCodes 8 місяців тому

      do you mean 1/sqrt(x)? I would just pass the output to a divide function.

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

    how i can output the sine wave in 1 output

    • @VCodes
      @VCodes 8 місяців тому

      What do you mean?

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

    So nice thanks

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    Good one bro.. Thanks for this tutorial. How do I map these digital outputs to 12 bit parallel DAC inputs?.

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

    how can i run Debugdb in modelsim .

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

    with component please

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

    I come from a software background and I am just starting with hardware development. As such, I really appreciate examples with SIMPLE logic like this (adders, counters, memories, etc. are too complex for me at this point). Thank you for this tutorial.

    • @VCodes
      @VCodes 8 місяців тому

      Sure. Hope those things you mentioned arent that complicated anymore! To people from software background I say, "Think along hardware, and not software".

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

    plz share any contact detail sir

    • @VCodes
      @VCodes 8 місяців тому

      my email should be visible in the "about me" section or from my blog, vhdlguru.blogspot.com/

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

    Thank you very much

    • @VCodes
      @VCodes 8 місяців тому

      Thank you

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

    hello, thanks a lot for the explanation of the code ,can i have the ucf document?

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

    Hi, are you able to produce a xdc file for the basys 3 based on this.

  • @almostabouteverything1112

    Very helpful video

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    Thank you so much man....

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    Thanks for the video.

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    This was a very good explanation, it helped me a lot! Greetings from germany

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    Thank you, this is very helpful.

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    This was a very good example. Could you create a VHDL self checking test-bench.

    • @VCodes
      @VCodes 8 місяців тому

      yes. soon planning to write or create a video on that. Thanks.

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

    good and rare content👌👌👍

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    Thank You very Much..Great Explanation...

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    thank you for your code. I used it to learn

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    thank you, this was very straight forward and not overwhelming

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!

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

    I need help with VHDL assignments. I'm willing to pay for tutoring as well... kindly reach out to me if you are interested. Thank you

    • @VCodes
      @VCodes 8 місяців тому

      I wasnt available for tutoring then. Now I have started doing so. Putting this out here for anyone who is interested. Thanks for the support.

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

    Its shows error while compiling "library unit env is not available in library std " how to resolve this?

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

    Hi, how do you make the clock run for a fixed duration though? I have noticed that the simulation only runs for 1000ns no matter where I try to implement this.

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

      hey. you just have to change the value in the text box at the top middle part of ISIM. By default its at 1 us(microsecond).

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

      @@VCodes Any idea how to do it for VIVADO? The simulation window doesn't open unless I run the simulation first, which means that I cannot type in the value in the required field. Also, after running the simulation, if I try to run again by typing a specified duration, it keeps on going forever until I break it.

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

      @@deathmaster4035 either you edit after the simulation has opened. or you can run it and specify in the code when to stop. see the bottom part of this link: vhdlguru.blogspot.com/2022/04/extension-of-digital-clock-project-with-7-segement-decoder.html.html the "finish" statement can be used for this. see the top for the required libraries which are needed for this.

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

      @@VCodes Allright, thank you.

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

    How do you save the simulation results to a text file?

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

    thank you for ur work, it is very useful!

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

      thanks. glad to hear that it was helpful..

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

    What if it has 8 7 segment display?

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

      Just ignore the two and use the rest of the six segments. What fpga board are you using?

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

      @@VCodes nexys A7

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

      @@khushaljagtap4883 for fun, you can also modify the code so that 1/100th of a second is shown in the time. and use all the 8 segments to display the time.

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

    Great Explanation! Since this is for 6-didgit seven segment display, what if it is a 2-digit seven segment display.

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

      Thanks. If you have only 2 displays you could display just hours or mins or secs. And you can use a switch or push button on the fpga board to select which part of time should be displayed.

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

      @@VCodes can we have code for 4 -digits display; that is for hours and minutes only.

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

      You can just remove the instantiation for seconds 7 segments decoder and it should work. Use whatever outputs you need and ignore the rest.

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

    Thx for this well prepared tutorial.

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

      Glad it was helpful!

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

    loooool the cow at 4:29. Full Gaurakhshak!

    • @VCodes
      @VCodes 8 місяців тому

      lol!

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

    worked for me, thanks!

    • @VCodes
      @VCodes 8 місяців тому

      Thank you!