Jump to content

GalD101

Members
  • Posts

    107
  • Joined

  • Last visited

Everything posted by GalD101

  1. OK I think it's ready. I will prefer to instantiate the MMCM by myself or at least understand what is the generated code but I'd rather not waste time. how can I connect it to the Hameg? what pin should I use?clk_wiz_0_clk_wiz.v
  2. I think the threshold is 500 MHz but I'm not sure. Here's a picture
  3. I talked to them and they will take care of connecting it to a breadboard. That reminds me something that doesn't really have anything to do with what we discuss here but I can't resist sending it, there it is
  4. 2 volts, 1 hz frequency. I knew it works since I assigned the led to this pio pin and it really did blink in that frequency.
  5. correct. I thought that for now I will use the function generator without worrying about impedance and blowing up the FPGA (as my professor told me to, since he wants me to mainly focus on programming the FPGA) so I thought that for now I will just try to learn how to program the FPGA and understand how to control it's clock and how to write to memory. I apologize for my misunderstanding.
  6. I connected the function generator to pio26, set_property -dict { PACKAGE_PIN L14 IOSTANDARD LVCMOS33 } [get_ports { pio26 }]; #IO_L7N_T1_D10_14 Sch=pio[26]
  7. This is the spd we have. I will get info about the function generator as well as the oscilloscope later. https://www.lasercomponents.com/de/?embedded=1&file=fileadmin/user_upload/home/Datasheets/lc-photon-counter/count-nir.pdf&no_cache=1 This is the oscilloscope: https://www.tequipment.net/Hameg/HM400/Analog-Oscilloscopes/ This is the function generator: https://www.thinksrs.com/products/DS345.htm
  8. I made a simple program that assigned the led to the value of the corresponding pin.
  9. Hi @reddish As of now, I'm only limited to using just the function generator. I was able to connect it and make the led blink according to it. How can I achieve this? Do you want me to connect the function generator to an oscilloscope? I will try to ask my professor for that since I'm not sure what to do (do I need to connect the spd to an oscilloscope? For now I'm only limited to using the function generator) As I said for now I'm limited to using just the function generator instead The function generator is connected to one of the pins in the fpga and it works I think I will need some help with that. Are there any good sources for this? Yes, I am committed I just take a data structures course at the same time but no worries, I have until 17.10 to work on this
  10. can you help me with this part? where should I start? I will google some information about it
  11. Oh, I also happen to have a PmodDA4 that communicates via the SPI protocol. Is it something I can use?
  12. Hey @reddish so in order to accomplish step 1, I need to connect the function generator to the FPGA (and making sure I never give it more than 3 volts), and then to check if it works? What should I do now?
  13. Isn't this is what's called a "Race Condition"? Here, since the two flipflops receive asynchronous input (the input is foreign to their clock), a race condition occurs and in the small time difference that is in between the input signal for each ff, the values of flipflop_1 and flipflop_2 are seemingly the same sometimes but in reality, it's just because they sort of like have 2 different inputs that have a "clock" that isn't exactly the same all the time by the way, what software/program are you using to draw those images? I saw it before but never bothered to look for it.
  14. for the time being, I can use a function generator instead of a photon detector
  15. according to the details of my SPD here, it says: "TTL output pulse amplitude (into 50 Ohm) is typically 3 Volts". Does it mean I need to make sure the corresponding input on my FPGA is "ok" with 3 volts?
  16. How can I check this? I have this schematic file and I'm not sure how to read it. Also, how can I figure out the impedance of the cable coming out of the SPD?
  17. ok, so I think that by registering you mean saving as a register (that opposite to a 'wire', it remembers - acts like a memory block) and it is important in order for the timing to be accurate, since the asynchronous signals are not connected to the clock and therefore, if I won't save it in a register (if I won't register the signals), it wouldn't be accurate enough. I'm not sure if that's true, but I think you should also register your output for good practice but it is not as important.
  18. I’m not sure if I really understood what a constrains file is yet, but I think it’s like some sort of a dictionary, I looked here and here and I just used it as a mapping tool between the names of the “variables” in my code to the physical hardware that is on the FPGA. other than that, I’m not sure what else can it be used for. I did see the “create_clock” keyword and I think what you are asking is in reference to this but so far, I just used this file as a dictionary. Is it something that I’m supposed to change or is it supposed to stay like this for the specific device I’m using?
  19. I’m not sure if I understood you correctly, but if you talk about the assign statement, I think it just makes sure that whenever the value on the right hand side is changing, it changes the state of the value on the left hand side. For example, if I write something like: assign led_b = ~led_g then whenever the value of led_g is 0 then led_b will be 1 and when led_g is 1, then led_b will be 0
  20. What’s the difference between a and c? From what I understand, in essence, a combinational circuit is a circuit that only depends on its input while a sequential circuit depends on the input as well as its previous output. So you can think of the previous output as some sort of an input as well
  21. For now, we will do the first one with no variations. Later on, we plan to do the rest. I actually already did exactly this (blinking LED) as well as making the buttons turn the LED on (which is just one line 'assign led = ~btn) It will be enough. p.s. Thanks everyone for the help! I really appreciate it
  22. there is a more detailed explanation here. or in the PDF 2005 Interference with correlated photons.pdf
  23. @reddish Hi, this is really a simplified sketch of the experience and it's not 100% accurate but it should be enough for my part we start with two photons that go through a change in their energy level (by going through some sort of medium - a crystal) and then they both reach a corresponding detector. Also, excuse my awful handwriting. this is the transcript of what's written: We want to know when we have a "coincidence", that is, when both detectors are on, within a certain time interval. Why do we want to check if there are coincidences? because if there is a coincidence, it means the 2 photons were created together as a pair. Issues that may arise: How would we choose the time interval? (We can choose a sufficiently large time interval such that every detection would count as a coincidence) Following the previous issue, it seems that we may have false positives (coincidence detected but in reality, there was no coincidence) as well as false negatives (coincidence was not detected but in reality, there was a coincidence - "missing a coincidence") HDLs are not programming languages (harder) It's not just an AND gate Clock management and things lick clock domain crossing CCU sketch.pdf
  24. Hi @reddish, first of all, thank you for the help. I didn't answer all of your questions since I didn't really understand them. I'm a first-year physics and CS student so I don't have a deep understanding of SPD or FPGA yet. I did talk with my professor and that's what we concluded: I think that we need to measure the maximum event rate according to this link (this is the SPD we have) we have a CW laser so I think the events would be reasonably smooth I would like to use 2 and if that would work, I'll try to use 3 I'm not sure I think it should approximately be the recovery time of the sensor between each detection. according to what you said, it would probably be a better idea to make a streaming solution since it would be easier. you are correct, I'm doing this as a small project mostly to get some experience doing experiments (I'm in my first year, bachelor's degree). not really but after reading a bit about it, it seems to be the issues that arise when data from one flop transfers data to another with a different clock in general, since you seem to be familiar with coincidence counting, do you have any tips on what should I do? I tried reading a lot online and I built very basic projects in Verilog. After reading a bit, I don't think I'll be able to finish this in less than a month but I am very interested in learning more about FPGA and how to program it
×
×
  • Create New...