#vhdl
Explore tagged Tumblr posts
Note
Assembly is not enough, i need to fuck my processor
VHDL or Verilog. I don't have any experience in Verilog, but have made some simple stuff on FPGAs with VHDL; it's pretty cool, but also quite frustrating since it's simultaneously the lowest level programming you'll probably ever do (as it is changing real hardware), but it's also quite abstract, so you don't really know what the compiler does; this makes fixing (heisen) bugs real tricky.
If you ment 'fuck my processor' more literally I recommend something with a LGA socket, because you will bend the pins of a PGA CPU. Also dry it off before reinserting it in your motherboard. I don't know how you'll get any real pleasure from it, but feel free to try!
5 notes
路
View notes
Text
Normally I just post about movies but I'm a software engineer by trade so I've got opinions on programming too.
Apparently it's a month of code or something because my dash is filled with people trying to learn Python. And that's great, because Python is a good language with a lot of support and job opportunities. I've just got some scattered thoughts that I thought I'd write down.
Python abstracts a number of useful concepts. It makes it easier to use, but it also means that if you don't understand the concepts then things might go wrong in ways you didn't expect. Memory management and pointer logic is so damn annoying, but you need to understand them. I learned these concepts by learning C++, hopefully there's an easier way these days.
Data structures and algorithms are the bread and butter of any real work (and they're pretty much all that come up in interviews) and they're language agnostic. If you don't know how to traverse a linked list, how to use recursion, what a hash map is for, etc. then you don't really know how to program. You'll pretty much never need to implement any of them from scratch, but you should know when to use them; think of them like building blocks in a Lego set.
Learning a new language is a hell of a lot easier after your first one. Going from Python to Java is mostly just syntax differences. Even "harder" languages like C++ mostly just mean more boilerplate while doing the same things. Learning a new spoken language in is hard, but learning a new programming language is generally closer to learning some new slang or a new accent. Lists in Python are called Vectors in C++, just like how french fries are called chips in London. If you know all the underlying concepts that are common to most programming languages then it's not a huge jump to a new one, at least if you're only doing all the most common stuff. (You will get tripped up by some of the minor differences though. Popping an item off of a stack in Python returns the element, but in Java it returns nothing. You have to read it with Top first. Definitely had a program fail due to that issue).
The above is not true for new paradigms. Python, C++ and Java are all iterative languages. You move to something functional like Haskell and you need a completely different way of thinking. Javascript (not in any way related to Java) has callbacks and I still don't quite have a good handle on them. Hardware languages like VHDL are all synchronous; every line of code in a program runs at the same time! That's a new way of thinking.
Python is stereotyped as a scripting language good only for glue programming or prototypes. It's excellent at those, but I've worked at a number of (successful) startups that all were Python on the backend. Python is robust enough and fast enough to be used for basically anything at this point, except maybe for embedded programming. If you do need the fastest speed possible then you can still drop in some raw C++ for the places you need it (one place I worked at had one very important piece of code in C++ because even milliseconds mattered there, but everything else was Python). The speed differences between Python and C++ are so much smaller these days that you only need them at the scale of the really big companies. It makes sense for Google to use C++ (and they use their own version of it to boot), but any company with less than 100 engineers is probably better off with Python in almost all cases. Honestly thought the best programming language is the one you like, and the one that you're good at.
Design patterns mostly don't matter. They really were only created to make up for language failures of C++; in the original design patterns book 17 of the 23 patterns were just core features of other contemporary languages like LISP. C++ was just really popular while also being kinda bad, so they were necessary. I don't think I've ever once thought about consciously using a design pattern since even before I graduated. Object oriented design is mostly in the same place. You'll use classes because it's a useful way to structure things but multiple inheritance and polymorphism and all the other terms you've learned really don't come into play too often and when they do you use the simplest possible form of them. Code should be simple and easy to understand so make it as simple as possible. As far as inheritance the most I'm willing to do is to have a class with abstract functions (i.e. classes where some functions are empty but are expected to be filled out by the child class) but even then there are usually good alternatives to this.
Related to the above: simple is best. Simple is elegant. If you solve a problem with 4000 lines of code using a bunch of esoteric data structures and language quirks, but someone else did it in 10 then I'll pick the 10. On the other hand a one liner function that requires a lot of unpacking, like a Python function with a bunch of nested lambdas, might be easier to read if you split it up a bit more. Time to read and understand the code is the most important metric, more important than runtime or memory use. You can optimize for the other two later if you have to, but simple has to prevail for the first pass otherwise it's going to be hard for other people to understand. In fact, it'll be hard for you to understand too when you come back to it 3 months later without any context.
Note that I've cut a few things for simplicity. For example: VHDL doesn't quite require every line to run at the same time, but it's still a major paradigm of the language that isn't present in most other languages.
Ok that was a lot to read. I guess I have more to say about programming than I thought. But the core ideas are: Python is pretty good, other languages don't need to be scary, learn your data structures and algorithms and above all keep your code simple and clean.
#programming#python#software engineering#java#java programming#c++#javascript#haskell#VHDL#hardware programming#embedded programming#month of code#design patterns#common lisp#google#data structures#algorithms#hash table#recursion#array#lists#vectors#vector#list#arrays#object oriented programming#functional programming#iterative programming#callbacks
20 notes
路
View notes
Text
youtube
How to Download ModelSim Simulator for FREE! | Step by Step Guide in HINDI - [4 Min]
Welcome to our comprehensive tutorial on how to download ModelSim Simulator, the leading industry-standard digital simulation tool. In this step-by-step guide, we will walk you through the entire process, ensuring a hassle-free installation experience. ModelSim offers advanced simulation capabilities for digital designs, making it indispensable for hardware engineers, students, and enthusiasts alike.
In this video, we provide you with detailed instructions to download ModelSim Simulator effortlessly. Starting from checking the system requirements to ensuring optimal performance, we cover every essential aspect. We also discuss the licensing process and provide solutions to common installation errors that you may encounter. Our aim is to equip you with the knowledge and confidence to successfully install and utilize ModelSim Simulator in your projects.
Don't miss out on harnessing the power of ModelSim Simulator for your digital simulation needs. Watch this tutorial now and kickstart your journey towards efficient hardware design and verification!
馃敂 Subscribe to our channel for more informative tutorials and updates! 馃敂
Subscribe to "Learn And Grow Community"
YouTube : https://www.youtube.com/@LearnAndGrowCommunity
LinkedIn Group : linkedin.com/company/LearnAndGrowCommunity
Blog : https://LearnAndGrowCommunity.blogspot.com/
Facebook : https://www.facebook.com/JoinLearnAndGrowCommunity/
Twitter Handle : https://twitter.com/LNG_Community
DailyMotion : https://www.dailymotion.com/LearnAndGrowCommunity
Instagram Handle : https://www.instagram.com/LearnAndGrowCommunity/
Follow #LearnAndGrowCommunity
#ModelSimSimulator#DigitalSimulation#HardwareEngineering#InstallationGuide#Tutorial#SystemRequirements#SimulationSoftware#HardwareDesign#vhdltutorial#vhdl#vhdlprogramming#verilog#veriloghdl#verilogtutorial#fpga#simulationsoftware#howtodownload#Youtube
3 notes
路
View notes
Text
Verilog users DNI
Verilog users please interact! Is it less bad? From what I've seen it seems a little nicer, but I'm pretty sure hardware description is never nice. Can you prove me wrong?
0 notes
Video
youtube
Implement/Add Multiple Time Delays to 1-bit Signals, RTL Code and Testbe...
0 notes
Text
"VHDL stands for 鈥榁ery High Speed Integrated Circuit Hardware Description Language' "
pure poetry, the capitalization of letters not present in the acronym, the vagueness of "Very High Speed" (what makes something very high speed vs regular high speed?) . No explanation of where the missing letters went. And they say art and STEM don't mix
0 notes
Text
I love uninstalling shit. Get out of my computer.
#goodbye xilinx tools you won't be missed#i never wanna deal with vhdl again#hope i pass this class. we'll find it out on tuesday
82 notes
路
View notes
Text
That is a very neat idea!
If you like things like that you might want to look into VHDL ( I learned that... some years ago, but have not touched it since ) or Verilog.
They are... programming languages for making logic gate logic.
You combine that with an FPGA, which is essentially a whole lot of NAND gates ( Which as I said, can represent any logic gate system ), and then you can make hardware... via software.
And yes, these essentially do things like your idea. Things that would take a CPU aaaaages to do, can be done very very fast. So you "just" have normal C code, but if it runs onto one of the problems it have hardware for, it uses the hardware.
This is also how graphics cards work, or just floating point operations!
It is insanely cool! :D
What is half-adder and full-adder combinational circuits?
So this question came up in the codeblr discord server, and I thought I would share my answer here too :3
First, a combinational circuit simply means a circuit where the outputs only depends on its input. ( combinational means "Combine" as in, combining the inputs to give some output )
It is a bit like a pure function. It is opposed to circuits like latches which remembers 1 bit. Their output depends on their inputs AND their state.
These circuits can be shown via their logic gates, or truth tables. I will explain using only words and the circuits, but you can look up the truth tablet for each of the circuits I talk about to help understand.

Ok, so an in the case of electronics is a circuit made with logic gates ( I... assume you know what they are... Otherwise ask and I can explain them too ) that adds 2 binary numbers, each which have only 1 character.聽
So one number is 1 or 0
And the other number is 1 or 0
So the possible outputs are are 0, 1 and 2.
Since you can only express from 0 to 1 with one binary number, and 0 to 3 with 2, we need to output 2 binary numbers to give the answer. So the output is 2 binary numbers
00 = 0
01 = 1
10 = 2
11 = 3 // This can never happen with a half adder. The max possible result is 2
Each character will be represented with a wire, and a wire is a 0 if it is low voltage (usually ground, or 0 volts) and a 1 if it is high voltage (Voltage depends. Can be 5 volts, 3.3, 12聽 or something else. )
BUT if you only use half adders, you can ONLY add 2 single character binary numbers together. Never more.
If you want to add more together, you need a full adder. This takes 3 single character binary numbers, and adds them and outputs a single 2 character number.
This means it have 3 inputs and 2 outputs.
We have 2 outputs because we need to give a result that is 0, 1, 2 or 3
Same binary as before, except now we CAN get a 11 (which is 3)
And we can chain full adders together to count as many inputs as we want.
So why ever use a half adder? Well, every logic gate cirquit can be made of NAND (Not and) gates, so we usually compare complexity in how many NAND gates it would take to make a circuit. More NAND gates needed means the circuit is slower and more expensive to make.
A half adder takes 5 NAND gates to make
A full adder takes 9 NAND gates.
So only use a full adder if you need one.
Geeks for Geeks have a page for each of the most normal basic cirquits:
I hope that made sense, and was useful :3
41 notes
路
View notes
Text
I wasn't a fan of arknights's roguelike mode, until today.
Spent the entire day doing runs of the mode, trying a lot of different shit, and coming close to the final boss several times. It's so fucking good I can't believe it took that long to click for me.
#I also spent the rest of the day building a registry bank in VHDL#It was as fun as it sounds#Arknights
15 notes
路
View notes
Text

"Transforming Possibilities: Embracing Artificial Intelligence at SAMYAK Computers"
2 notes
路
View notes
Text
youtube
Use this trick to Save time : HDL Simulation through defining clock
Why is this trick useful? Defining a clock in your simulation can save you time during simulation because you don't have to manually generate the clock signal in your simulation environment. Wanted to know how to define and force clock to simulate your digital system. Normally define clock used to simulate system with clock input. But I am telling you this trick for giving values to input ports other than clock. It will help you to save time in simulation because you do not need to force values to input ports every time. Lets brief What we did - gave some clock frequency to input A, like we gave 100. Than we made Half the frequency of clock to 50 and gave it to Input B. In similar way if we have 3rd input too we goanna half the frequency again to 25 and would give to next input.
Subscribe to "Learn And Grow Community"
YouTube : https://www.youtube.com/@LearnAndGrowCommunity
LinkedIn Group : https://www.linkedin.com/groups/7478922/
Blog : https://LearnAndGrowCommunity.blogspot.com/
Facebook : https://www.facebook.com/JoinLearnAndGrowCommunity/
Twitter Handle : https://twitter.com/LNG_Community
DailyMotion : https://www.dailymotion.com/LearnAndGrowCommunity
Instagram Handle : https://www.instagram.com/LearnAndGrowCommunity/
Follow #LearnAndGrowCommunity
#HDL Design#Digital Design#Verilog#VHDL#FPGA#Digital Logic#Project#Simulation#Verification#Synthesis#B.Tech#Engineering#Tutorial#Embedded Systesm#VLSI#Chip Design#Training Courses#Software#Windows#Certification#Career#Hardware Design#Circuit Design#Programming#Electronics Design#ASIC#Xilinx#Altera#Engineering Projects#Engineering Training Program
3 notes
路
View notes
Video
youtube
Implement/Add Multiple Time Delays to 1-bit Signals, RTL Code and Testbe...
1 note
路
View note
Note
Hey Foone, I'm building my own terminal from scratch (don't worry, no 7400-series logic, just an FPGA and my very limited VHDL skills).
I have absolutely no idea about the control sequences the computer sends, and how to handle them. You seem like you could've done something like this for fun.
Do you have any pointers to resources or something?
Yeah, Termcap/terminfo and ANSI escapes are what you鈥檙e looking for. ANSI escapes is the standard for talking to terminals, Termcap is the database of terminals (and the library to access it) that explains how each terminal works.
So what you鈥檇 want to do is find a terminal in Termcap and make your terminal work just like that one, so Linux (and other unixes) know how to talk to it.
90 notes
路
View notes
Note
Could you tell me how to get evil mode on Emacs running on windows? Do you need admin privileges?
I'm soon going to have an exam about VHDL and we must do it on Windows PCs that I don't have admin on, and while we don't have to use Emacs, the VHDL stuff in it is gonna be pretty essential to getting it done in time and I'd really like using evil mode instead of learning a whole new editor just for one exam
On Windows I usually use emacs via WSL, so I'm not sure. You should theoretically be able to install emacs packages without any privileges, since they are essentially just files that are referenced in your config (and downloaded via whatever emacs package manager you prefer).
I personally use doom emacs, so I'm not quite sure what is the best way to install packages on vanilla emacs 馃槄
You could try to find a tutorial on how to use one of the config frameworks on Windows (e.g doom emacs and spacemacs come with evil by default)
If you can't manage to get evil working in time, emacs is really easy to learn. It's basically like any GUI Text editor (if you start it as a GUI application instead of in the terminal), just with different shortcuts to save, copy, paste, etc.
9 notes
路
View notes
Text
Please picture this scene: Me, sitting down on my computer for the first time today when it's almost 9 pm, very tired after spending a day fighting for my life and losing to a vhdl file (vhdl is programming for hardware)
I stare at my desktop background as it tries to one-up me in whiteness:
(BlazBlue_Central_Fiction_Story_Mode_03(A).png)
I click on Mozilla Firefox. As it opens, so does my mouth, to utter words filled with so much conviction and offense, one would think I'd be privy to whatever argument my mind suddenly started, but I was just as surprised to hear:
"Jin Kisaragi is not taller than me"
In plain English. Which is not my mother tongue I use to communicate in my everyday (that would be Brazillian Portuguese), nor the language I babble to myself when I'm alone (that would be child-level Japanese).
Compelled by this odd sequence of events, I bring myself to Jin Kisaragi's page on the Blazblue wiki almost in a trance, and this dreamlike state pops like a balloon when my tired mind makes sense of the number on display.
178 cm.
Somewhere inside my head, I feel my scattered thoughts coalescing into a sharp, warm feeling that can only be approximated by the sound of a very joyful "yippee". It is followed by a very clear and tense "por um cent铆metro" that perfectly conveyed the matter of life and death my subconscious discussed in that one instant without my input.
If there's one takeaway from this, I suppose it's just good to know I'm comfortable enough with English to blurt it to myself umprompted.
5 notes
路
View notes