#vhdl
Explore tagged Tumblr posts
assembly-official · 5 months ago
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
watchmorecinema · 2 years ago
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.
19 notes · View notes
learnandgrowcommunity · 2 years ago
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
2 notes · View notes
aarifboy · 30 days ago
Video
youtube
Implement/Add Multiple Time Delays to 1-bit Signals, RTL Code and Testbe...
0 notes
commieclimbercatboy · 6 months ago
Text
"VHDL stands for ‘Very 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
moose-mousse · 1 year ago
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.
Tumblr media
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.
Tumblr media
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
40 notes · View notes
lo-que-te-haga-feliz · 1 year ago
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.
15 notes · View notes
samyakcomputersclasses · 11 months ago
Text
Tumblr media
"Transforming Possibilities: Embracing Artificial Intelligence at SAMYAK Computers"
2 notes · View notes
foone · 4 months ago
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’re 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’d 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
emacs-unofficial · 5 months ago
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
learnandgrowcommunity · 2 years ago
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
2 notes · View notes
aarifboy · 1 month ago
Video
youtube
Implement/Add Multiple Time Delays to 1-bit Signals, RTL Code and Testbe...
1 note · View note
piratesexmachine420 · 7 months ago
Text
98% of programming is plugging other people's libraries into each other. The other 2% is a combination of actual wizards writing VHDL n' shit, and extreme novices reinventing increasingly baffling wheels due to a lack of experience.
7 notes · View notes
parasitic-inductance · 4 months ago
Text
fading's studyblr
Hey y'all
I'm fading, a computer engineering undergrad
Interested Sectors: SWE, Hardware Development
Languages: C/C++, ARM, VHDL, Java, Python
Hardware Technologies: FPGA, nRF 52840 series
SWE Tools: Git, Linux, PowerShell, Quartus Prime, Keil uVision
I'm interested tracking real progress, especially when it comes to developing progress with projects or learning languages
Follow me for tech talks, progress, and more!
follow me on my main: @fadingintogrey
2 notes · View notes
electronictechub · 8 months ago
Text
Understanding FPGA Architecture: Key Insights
Introduction to FPGA Architecture
Imagine having a circuit board that you could rewire and reconfigure as many times as you want. This adaptability is exactly what FPGAs offer. The world of electronics often seems complex and intimidating, but understanding FPGA architecture is simpler than you think. Let’s break it down step by step, making it easy for anyone to grasp the key concepts.
What Is an FPGA?
An FPGA, or Field Programmable Gate Array, is a type of integrated circuit that allows users to configure its hardware after manufacturing. Unlike traditional microcontrollers or processors that have fixed functionalities, FPGAs are highly flexible. You can think of them as a blank canvas for electrical circuits, ready to be customized according to your specific needs.
How FPGAs Are Different from CPUs and GPUs
You might wonder how FPGAs compare to CPUs or GPUs, which are more common in everyday devices like computers and gaming consoles. While CPUs are designed to handle general-purpose tasks and GPUs excel at parallel processing, FPGAs stand out because of their configurability. They don’t run pre-defined instructions like CPUs; instead, you configure the hardware directly to perform tasks efficiently.
Basic Building Blocks of an FPGA
To understand how an FPGA works, it’s important to know its basic components. FPGAs are made up of:
Programmable Logic Blocks (PLBs): These are the “brains” of the FPGA, where the logic functions are implemented.
Interconnects: These are the wires that connect the logic blocks.
Input/Output (I/O) blocks: These allow the FPGA to communicate with external devices.
These elements work together to create a flexible platform that can be customized for various applications.
Understanding Programmable Logic Blocks (PLBs)
The heart of an FPGA lies in its programmable logic blocks. These blocks contain the resources needed to implement logic functions, which are essentially the basic operations of any electronic circuit. In an FPGA, PLBs are programmed using hardware description languages (HDLs) like VHDL or Verilog, enabling users to specify how the FPGA should behave for their particular application.
What are Look-Up Tables (LUTs)?
Look-Up Tables (LUTs) are a critical component of the PLBs. Think of them as small memory units that can store predefined outputs for different input combinations. LUTs enable FPGAs to quickly execute logic operations by “looking up” the result of a computation rather than calculating it in real-time. This speeds up performance, making FPGAs efficient at performing complex tasks.
The Role of Flip-Flops in FPGA Architecture
Flip-flops are another essential building block within FPGAs. They are used for storing individual bits of data, which is crucial in sequential logic circuits. By storing and holding values, flip-flops help the FPGA maintain states and execute tasks in a particular order.
Routing and Interconnects: The Backbone of FPGAs
Routing and interconnects within an FPGA are akin to the nervous system in a human body, transmitting signals between different logic blocks. Without this network of connections, the logic blocks would be isolated and unable to communicate, making the FPGA useless. Routing ensures that signals flow correctly from one part of the FPGA to another, enabling the chip to perform coordinated functions.
Why are FPGAs So Versatile?
One of the standout features of FPGAs is their versatility. Whether you're building a 5G communication system, an advanced AI model, or a simple motor controller, an FPGA can be tailored to meet the exact requirements of your application. This versatility stems from the fact that FPGAs can be reprogrammed even after they are deployed, unlike traditional chips that are designed for one specific task.
FPGA Configuration: How Does It Work?
FPGAs are configured through a process called “programming” or “configuration.” This is typically done using a hardware description language like Verilog or VHDL, which allows engineers to specify the desired behavior of the FPGA. Once programmed, the FPGA configures its internal circuitry to match the logic defined in the code, essentially creating a custom-built processor for that particular application.
Real-World Applications of FPGAs
FPGAs are used in a wide range of industries, including:
Telecommunications: FPGAs play a crucial role in 5G networks, enabling fast data processing and efficient signal transmission.
Automotive: In modern vehicles, FPGAs are used for advanced driver assistance systems (ADAS), real-time image processing, and autonomous driving technologies.
Consumer Electronics: From smart TVs to gaming consoles, FPGAs are used to optimize performance in various devices.
Healthcare: Medical devices, such as MRI machines, use FPGAs for real-time image processing and data analysis.
FPGAs vs. ASICs: What’s the Difference?
FPGAs and ASICs (Application-Specific Integrated Circuits) are often compared because they both offer customizable hardware solutions. The key difference is that ASICs are custom-built for a specific task and cannot be reprogrammed after they are manufactured. FPGAs, on the other hand, offer the flexibility of being reconfigurable, making them a more versatile option for many applications.
Benefits of Using FPGAs
There are several benefits to using FPGAs, including:
Flexibility: FPGAs can be reprogrammed even after deployment, making them ideal for applications that may evolve over time.
Parallel Processing: FPGAs excel at performing multiple tasks simultaneously, making them faster for certain operations than CPUs or GPUs.
Customization: FPGAs allow for highly customized solutions, tailored to the specific needs of a project.
Challenges in FPGA Design
While FPGAs offer many advantages, they also come with some challenges:
Complexity: Designing an FPGA requires specialized knowledge of hardware description languages and digital logic.
Cost: FPGAs can be more expensive than traditional microprocessors, especially for small-scale applications.
Power Consumption: FPGAs can consume more power compared to ASICs, especially in high-performance applications.
Conclusion
Understanding FPGA architecture is crucial for anyone interested in modern electronics. These devices provide unmatched flexibility and performance in a variety of industries, from telecommunications to healthcare. Whether you're a tech enthusiast or someone looking to learn more about cutting-edge technology, FPGAs offer a fascinating glimpse into the future of computing.
2 notes · View notes
writingservice7 · 14 days ago
Text
0 notes