Winmodems are a very sensible idea. You know software-defined radio? They are that, but for modems. Expandable to support any current or future protocol, at the cost of CPU time. Why do we like SDRs but hate SDMs? That's an irrational position.
The actual problem with winmodems was them breaking the established software/hardware boundary, and the Linux community not having the resources to follow suit.
Nothing stops someone from taking the free Windows Vivado and making it run on Linux, or taking a Winmodem driver and making it run on Linux, or writing a from-scratch software implementation of a 56k modem that can run on any sound card plugged into a phone line (which is what a Winmodem is), or reverse engineering the bitstream format for these FPGAs and writing a compiler from scratch (or even just the device-dependent backend - the frontend and middle-end can be developed in a more normal way and can be shared with other toolchains). But nobody actually stepped up and did it, which I think is proof that the free software community is a lot weaker than it thinks it is.
You could even do it right now, if you wanted to. You're not, and I'm sure there are good reasons for that. Extrapolate it across all developers, and it's unfortunate that it seems none of them have enough reason to do it. On the flip side, if anyone reading this does suddenly decide they have enough reason to do it... (Incentive: FPGAs are fun to play with!)
It's a practical position. The era of Winmodems was a long time ago, and the hardware was terrible compared to what we have now. Today, SDR is a fun thing anybody can pick up as a hobby. If it doesn't work, I have three other ways of accessing the Internet. If your winmodem didn't work, you didn't have a smartphone or a tablet to connect to ChatGPT (well, Altavista at the time) with and look for help. Then, when they did work, they were really bad because the single core CPUs of the day didn't have multiple cores to have the CPU cycles to run the software end of the modem and do anything else at the time. Which meant if you were running a game (Tuxracer, perhaps? Linmodem support wasn't broad, but it existed) at the same time, you lost. That tends to cause people to not like the product.
> Nothing stops someone from taking the free Windows Vivado and making it run on Linux
The EULA and the fact that the linux versior runs faster & has fewer bugs.
> just the device-dependent backend would be a major improvement and the frontend and optimizer could be shared with other toolchains
That's yosys and it's used by smaller commercial vendors.
> or reverse engineering then bitstream format for these FPGAs
Getting the timing is the hard part (+ good routing afterwards). The bitstream format has AFAIK mostly been reversed. 7 series has mediocre support , but US, US+ and Versal doesn't (probably because they're too expensive for personal usage).
You can just ignore the EULA. Nobody is coming to get you.
Sounds like yosys is good. Why is nobody using it? Why are we all hoping for Vivado instead of just using Yosys?
You can extract the timing information from Vivado. Such information is not copyrightable. You should be able to extract timing data and connectivity data from anything supported by the free version. You could also collaborate with someone with a really fast oscilloscope to gather some timing yourself, though that'll be extremely tedious.
Even if you just get the connectivity data and bitstream format and no timing, that's massively useful for less-than-high-speed projects. A single open source developer just has to make a contribution, doesn't have to do the whole thing in one go. The reverse engineering parts are often the most valuable, especially if they require access to hardware.
> You can just ignore the EULA. Nobody is coming to get you.
You can, but it's not gonna gain broad attention.
> Why is nobody using it?
It's used for chips with a good open source backend (lattice, gatemate). But it's non-trivial to integrate with the vivado backend and doesn't bring many benefits when used as such.
> You can extract the timing information from Vivado. Such information is not copyrightable.
Yes
> You could also collaborate with someone with a really fast oscilloscope to gather some timing yourself
No. Especially not fast-fast and slow-slow corners.
> Even if you just get the connectivity data and bitstream format and no timing, that's massively useful for less-than-high-speed projects.
Not really, you need at least a rough worst-case estimate. Otherwise even trivial designs might not work.
> A single open source developer just has to make a contribution, doesn't have to do the whole thing in one go.
A large part (clocks, routing, LUTs, BRAM, IO, a basic timing model) has to work, otherwise it's not really usable.
It's really non-trivial to get to a basic usable point. I would estimate at least 4-5 very experienced people working on this 2-3 years. Nothing impossible, but also not something that easily happens.
> > You can just ignore the EULA. Nobody is coming to get you.
> You can, but it's not gonna gain broad attention.
True I guess nobody ever gave a shit about The Pirate Bay. That project died without gathering a single user.
> > Why is nobody using it?
> It's used for chips with a good open source backend (lattice, gatemate). But it's non-trivial to integrate with the vivado backend and doesn't bring many benefits when used as such.
Sounds like someone should reverse engineer the vivado backend so it's not needed any more.
> The actual problem with winmodems was them breaking the established software/hardware boundary, and the Linux community not having the resources to follow suit.
I think you misspelled "winmodems were completely proprietary and prevented Linux community from writing their own drivers for the hardware".
Winmodems were the beginning of the era of "you cannot be allowed to use the hardware".
(As a technical solution, SDR makes perfect sense. The obstacle isn't technical.)
The actual problem with winmodems was them breaking the established software/hardware boundary, and the Linux community not having the resources to follow suit.
Nothing stops someone from taking the free Windows Vivado and making it run on Linux, or taking a Winmodem driver and making it run on Linux, or writing a from-scratch software implementation of a 56k modem that can run on any sound card plugged into a phone line (which is what a Winmodem is), or reverse engineering the bitstream format for these FPGAs and writing a compiler from scratch (or even just the device-dependent backend - the frontend and middle-end can be developed in a more normal way and can be shared with other toolchains). But nobody actually stepped up and did it, which I think is proof that the free software community is a lot weaker than it thinks it is.
You could even do it right now, if you wanted to. You're not, and I'm sure there are good reasons for that. Extrapolate it across all developers, and it's unfortunate that it seems none of them have enough reason to do it. On the flip side, if anyone reading this does suddenly decide they have enough reason to do it... (Incentive: FPGAs are fun to play with!)