RTV forum PL | NewsGroups PL

Szukam języka tekstowego do opisu schematów elektronicznych z wersjonowaniem

Opis schematu tekstowo.

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Szukam języka tekstowego do opisu schematów elektronicznych z wersjonowaniem

Goto page 1, 2, 3  Next

Sebastian Biały
Guest

Fri Nov 09, 2012 3:44 pm   



Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji? Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.

Jestem bardziej programistą, więc oczywiste wydaje mi się że "schemat"
opisany w języku tekstowym byłby:

a) mniej odporny na błedy dzieki stosowaniu jakiś wyższych abstrakcji
("magistrala adresowa 1, podepnij do pamięci U2").
b) wygodny w przeglądaniu historii w systemach kontroli wersji
c) możliwy do trywialnego podziału na zgrabne logiczne kawałki
d) nieczytelny dla przecietnego elektronika, ale kij z nimi, niech sobie
klika.

Teraz: czy świat dorobił się jakiegoś języka pozwalającego rozsadnie
opisać typowy schemat elektroniczny który:

a) nie jest językiem *hdl bo nie potrzebuje opisywać działania bramek,
interesuje mnie podpięcie drutow do pinów elementów elektronicznych. Nic
nie przeszkadza, gdyby *hdl mógł byś wpięty w tle do symulacji.
b) nie jest czytelny *tylko* dla maszyny, jak edif. Ma być read-write
dla człowieka.
c) potrafi okreslić opis na wyzszym poziomie niż pojedyncze druty.
d) da się skonwertować na schemat (z autoroutingiem połączeń).

Widział ktoś coś rownie nietypowego?

Żeby uprzedzić krucjatę: jestem specyficznym człowiekiem. Uważam za
wygodne rzeczy które inni nie byli by w stanie używać nawet pod
przymusem. Liczę jednak że nie jedynym.

Tak sobie wymysliłem w 10 sekund przykład ze składnią wyssaną z palca:

module counter( input wire clock, output vector result[4] )
{

U2 : CD4093;
U1 : CD4001;
R2 : Resistor( 10Ohm, 1W );

U2.gate1.out connect U1.gate2.in1;
U1.gate2.out connect U2.gate1.in2;
U1.gate2.in2 connect clock;
U2.gate3.out connect result[2];
R2.pin1 connect result[3];
....
U2.vcc connect global.vcc;
....

}

Przypomina to języki *hdl, ale tutaj mogę podpinać elementy również
analogowe. Czy ktoś widział gdzies coś podobnego, nawet bardzo odlegle w
składni?

Zbych
Guest

Fri Nov 09, 2012 3:58 pm   



W dniu 2012-11-09 15:44, Sebastian Biały pisze:
Quote:
Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji? Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.

[...]

Quote:
Przypomina to języki *hdl, ale tutaj mogę podpinać elementy również
analogowe. Czy ktoś widział gdzies coś podobnego, nawet bardzo odlegle w
składni?

Wątpię, żeby coś tak wysokopoziomowego istniało (w sensie, że w pliku są
tylko pary połączeń bez informacji którędy poprowadzono linię).
Przy analizowaniu schematu nie jest mi wszystko jedno gdzie są elementy
i którędy idą druty je łączące.

BTW część programów przechowuje schematy w formie tekstowej (eagle,
kicad), więc diff daje jakieś pojęcie co zostało zmienione.
Altium też potrafi graficznie pokazać różnice między dwoma schematami.

Michoo
Guest

Fri Nov 09, 2012 4:01 pm   



On 09.11.2012 15:44, Sebastian Biały wrote:
Quote:
Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji?

Wygenerować z obu netlisty, zrobić diff netlist (ewentualnie wcześniej
sortując).

Quote:
Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.

Zależnie jakie "różnice" cię interesują - czy przesunięcie linii o 2 mm
w prawo, czy zmiany logiczne.

Quote:

Teraz: czy świat dorobił się jakiegoś języka pozwalającego rozsadnie
opisać typowy schemat elektroniczny który:

Pliki netlist spice są niepisanym standardem, bo je łykają symulatory,
ERC, analizatory, etc.

Schemat jest przedstawieniem wygodnym dla człowieka.

--
Pozdrawiam
Michoo

Sebastian Biały
Guest

Fri Nov 09, 2012 4:29 pm   



On 2012-11-09 15:58, Zbych wrote:
Quote:
Przy analizowaniu schematu nie jest mi wszystko jedno gdzie są elementy
i którędy idą druty je łączące.

Mi jest wszystko jedno o ile elementy są zgrupowane blokami. To jest
przetwornica, to jest system procesorowy, to jest radio itd. To czy
druty idą dolem, górą nie ma znaczenia. De facto na moich schematach nie
ma w ogole drutów - każdy pin ma nazwę neta i koniec.

Sebastian Biały
Guest

Fri Nov 09, 2012 4:34 pm   



On 2012-11-09 16:01, Michoo wrote:
Quote:
Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji?
Wygenerować z obu netlisty, zrobić diff netlist (ewentualnie wcześniej
sortując).

Workaround :)

Ja mam wizje żeby *pisać* schematy i z tego robić pcb.

Quote:
Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.
Zależnie jakie "różnice" cię interesują - czy przesunięcie linii o 2 mm
w prawo, czy zmiany logiczne.

Pojęcie mm nie istnieje. Istnieją tylko powiązania pinów na różnych
poziomach abstrakcji.

Quote:
Teraz: czy świat dorobił się jakiegoś języka pozwalającego rozsadnie
opisać typowy schemat elektroniczny który:

Pliki netlist spice są niepisanym standardem, bo je łykają symulatory,
ERC, analizatory, etc.

Niestety są ciężko czytelne przy większych ilościach danych. Mi chodzi
nie o języki write only albo maszynowe. Mi chodzi o zapis czytelny dla mnie.

Quote:
Schemat jest przedstawieniem wygodnym dla człowieka.

To tylko teoria Smile Niestety jestem zboczony zawodowo programistycznie i
chyba wiem dlaczego świat nie dorobił się graficznych języków
programowania poza nieistotnym szumem typu LabView.

Marek
Guest

Fri Nov 09, 2012 6:05 pm   



On 09.11.2012 15:44, Sebastian Biały wrote:
Quote:
Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji? Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.

Jestem bardziej programistą, więc oczywiste wydaje mi się że "schemat"
opisany w języku tekstowym byłby:


[ciach]
To nie jest tak że szukasz czegoś do wizualizacji zmian a nie czytelnego
formatu?

Marek

Sebastian Biały
Guest

Fri Nov 09, 2012 6:16 pm   



On 2012-11-09 18:05, Marek wrote:
Quote:
To nie jest tak że szukasz czegoś do wizualizacji zmian a nie czytelnego
formatu?

Nie. Wizualizacja zmian przelała czarę goryczy. Gdyby istniał format
opisu schematu prawdopodobnie przeszedł bym na niego. Mam ostatnio dwie
wpadki wynikające z "narysowania się druta tam gdzie przypadkiem
kliknąłem" i nie zliczę ile innych idiotyzmów po drodze. To + kontrola
wersji powoduje że rozgladam się za alternatywą. Tak jak mówie, języki
programowania grficznego, choć mozliwe, nie mają żadnego sensu
praktycznego poza niszami. Podobnie VHDL/Verilog - koem źrodłowym
dokładniej opiszesz schemat niż zabawą w klikanie drutów w jakimś
gównianym edytorze bo mając taki opis możesz znacznie więcej z nim zrobić.

Marek
Guest

Fri Nov 09, 2012 7:32 pm   



On 09.11.2012 18:16, Sebastian Biały wrote:
Quote:
On 2012-11-09 18:05, Marek wrote:
To nie jest tak że szukasz czegoś do wizualizacji zmian a nie czytelnego
formatu?

Nie. Wizualizacja zmian przelała czarę goryczy. Gdyby istniał format opisu
schematu prawdopodobnie przeszedł bym na niego. Mam ostatnio dwie wpadki
wynikające z "narysowania się druta tam gdzie przypadkiem kliknąłem" i nie
zliczę ile innych idiotyzmów po drodze. To + kontrola wersji powoduje że
rozgladam się za alternatywą. Tak jak mówie, języki programowania
grficznego, choć mozliwe, nie mają żadnego sensu praktycznego poza
niszami. Podobnie VHDL/Verilog - koem źrodłowym dokładniej opiszesz
schemat niż zabawą w klikanie drutów w jakimś gównianym edytorze bo mając
taki opis możesz znacznie więcej z nim zrobić.
Może źle się wyraziłem. Jeżeliby istniał 'diff' który biorąc dwa pliki z

repo wypisałby że różnią się tym że tu było połączenie pomiędzy pinami a w
drugiej rewizji go nie ma to zapewne byłoby wystarczające? Poprzez termin
wizualizacja nie miałem na myśli graficznej reprezentacji, tylko
tłumaczenie z maszynowego na ludzki.

Korzystamy z fwbuildera (tool do generowania firewalli), przechowuje on
konfigurację w xml. Niby jest to do przeczytania/zapisu przez człowieka,
praktycznie jednak niewykonalne. Znacznie łatwiej jest napisać coś co
porówna i rozumiejąc semantykę "przetłumaczy" z maszynowego na ludzki co
się dokładnie zmieniło.

Pewną przewagą tekstowego formatu byłoby możliwość mergowania branchy w
repo, nie wierzę jednak że działałoby to wystarczająco dobrze.


Marek

J.F
Guest

Fri Nov 09, 2012 7:48 pm   



Użytkownik "Sebastian Biały" napisał w wiadomości grup
Quote:
Nie. Wizualizacja zmian przelała czarę goryczy. Gdyby istniał format
opisu schematu prawdopodobnie przeszedł bym na niego. Mam ostatnio
dwie wpadki wynikające z "narysowania się druta tam gdzie przypadkiem
kliknąłem" i nie zliczę ile innych idiotyzmów po drodze. To +
kontrola wersji powoduje że rozgladam się za alternatywą.

Chyba kazdy rozsadny edytor ma generacje netlisty (jak nie ma, to nie
jest rozsadny :-)

Te juz mozesz jakos porownywac.
Aczkolwiek ... zrodel takich problemow moze byc wiele - raczej bym sie
skupil na programie do sprawdzania (ERC) czy symulacji.


Quote:
Tak jak mówie, języki programowania grficznego, choć mozliwe, nie
mają żadnego sensu praktycznego poza niszami. Podobnie VHDL/Verilog -
koem źrodłowym dokładniej opiszesz schemat niż zabawą w klikanie
drutów w jakimś gównianym edytorze bo mając taki opis możesz znacznie
więcej z nim zrobić.

Owszem, ale wystarczy drobna nieuwaga i w kodzie zrodlowym sobie
namieszasz.
Przy czym czasem latwiej zauwazyc brak linii na schemacie, niz jakas
pomylke w jednej z dziesiatek tysiecy linii kodu ..

J.

Sebastian Biały
Guest

Fri Nov 09, 2012 8:20 pm   



On 2012-11-09 19:32, Marek wrote:
Quote:
Pewną przewagą tekstowego formatu byłoby możliwość mergowania branchy w
repo, nie wierzę jednak że działałoby to wystarczająco dobrze.

Uzywam na codzień SVN w przypadku C++. Działa perfekcyjnie, przy setkach
merge mogę policzyć dwa przypadki kiedy nabroił automatyczny merge i nie
bez przyczyny. Nie widze powodu dla ktorego niemożliwe było by
pracowanie przez N osób równloegle przy tym samym *schemacie*. Nawet
rozwiązywanie konfliktów powinno działać sensownie o ile język opisu
byłby rozsądny.

PS. VHDL i Verilog też się dobrze mergują automatycznie w SVN.

Sebastian Biały
Guest

Fri Nov 09, 2012 8:28 pm   



On 2012-11-09 19:48, J.F wrote:
Quote:
Chyba kazdy rozsadny edytor ma generacje netlisty (jak nie ma, to nie
jest rozsadny Smile

Ale nie o to chodzi aby porównywać netlisty. Chodzi o to aby:

a) pisać w języku schematów
b) kontrolwoać wersje na plikach źrodlowych
c) mieć możliwość odtworzenia schematu ze źródeł na żądanie

Quote:
Te juz mozesz jakos porownywac.
Aczkolwiek ... zrodel takich problemow moze byc wiele - raczej bym sie
skupil na programie do sprawdzania (ERC) czy symulacji.

To jest możliwe rownież kiedy zamist grafiki masz tekst.

Quote:
Owszem, ale wystarczy drobna nieuwaga i w kodzie zrodlowym sobie
namieszasz.

Jaka nieuwaga? Taka sama jak narysowanie się kreski o długości 2px na
schemacie co spowodowalo położenie mi produkcji płytek? Chyba jednak
tekst lepiej kontrolować.

Quote:
Przy czym czasem latwiej zauwazyc brak linii na schemacie, niz jakas
pomylke w jednej z dziesiatek tysiecy linii kodu ..

To jest dyskusyjne. Tym bardziej że jesteś w stanie mając takie pliki
przygotować sobie własne testy typu "czy wszystkie układy logiczne mają
zasilanie" albo "czy gdzieś przypadkiem nie podpięto dwóch wyjśc razem"
albo "ten tranzystor ma wiszącą bazę".

W zasadzie potrzebuje Verilog-AMS tylko bez symulacji. Powinien być
wystarczający do odtworzenia schematu.

ZeNek
Guest

Fri Nov 09, 2012 8:57 pm   



W dniu 2012-11-09 15:44, Sebastian Biały pisze:
Quote:
Własnie wale głową w mur: jak sprawdzić jak zmieniła się wersja 16
schematu względem 12 zakładając że pliki trzymam w systemie kontroli
wersji? Pomijam w tej chwili oprogramowanie - po prostu mam poważną
wątpliwość czy to w ogóle jest sensowne w przypadku schematów rysowanych.

Jestem bardziej programistą, więc oczywiste wydaje mi się że "schemat"
opisany w języku tekstowym byłby:

a) mniej odporny na błedy dzieki stosowaniu jakiś wyższych abstrakcji
("magistrala adresowa 1, podepnij do pamięci U2").
b) wygodny w przeglądaniu historii w systemach kontroli wersji
c) możliwy do trywialnego podziału na zgrabne logiczne kawałki
d) nieczytelny dla przecietnego elektronika, ale kij z nimi, niech sobie
klika.

Teraz: czy świat dorobił się jakiegoś języka pozwalającego rozsadnie
opisać typowy schemat elektroniczny który:

a) nie jest językiem *hdl bo nie potrzebuje opisywać działania bramek,
interesuje mnie podpięcie drutow do pinów elementów elektronicznych. Nic
nie przeszkadza, gdyby *hdl mógł byś wpięty w tle do symulacji.
b) nie jest czytelny *tylko* dla maszyny, jak edif. Ma być read-write
dla człowieka.
c) potrafi okreslić opis na wyzszym poziomie niż pojedyncze druty.
d) da się skonwertować na schemat (z autoroutingiem połączeń).

Widział ktoś coś rownie nietypowego?

Żeby uprzedzić krucjatę: jestem specyficznym człowiekiem. Uważam za
wygodne rzeczy które inni nie byli by w stanie używać nawet pod
przymusem. Liczę jednak że nie jedynym.

Tak sobie wymysliłem w 10 sekund przykład ze składnią wyssaną z palca:

module counter( input wire clock, output vector result[4] )
{

U2 : CD4093;
U1 : CD4001;
R2 : Resistor( 10Ohm, 1W );

U2.gate1.out connect U1.gate2.in1;
U1.gate2.out connect U2.gate1.in2;
U1.gate2.in2 connect clock;
U2.gate3.out connect result[2];
R2.pin1 connect result[3];
...
U2.vcc connect global.vcc;
...

}

Przypomina to języki *hdl, ale tutaj mogę podpinać elementy również
analogowe. Czy ktoś widział gdzies coś podobnego, nawet bardzo odlegle w
składni?




Protel pokazuje zmiany podczas importu np do PCB. Chyba słowny opis
powinien wystarczyc to i tak tylko dla twojej wiadomosci .

Zbych
Guest

Sat Nov 10, 2012 9:42 am   



W dniu 09.11.2012 16:29, Sebastian Biały pisze:
Quote:
On 2012-11-09 15:58, Zbych wrote:
Przy analizowaniu schematu nie jest mi wszystko jedno gdzie są elementy
i którędy idą druty je łączące.

Mi jest wszystko jedno o ile elementy są zgrupowane blokami. To jest
przetwornica, to jest system procesorowy, to jest radio itd. To czy
druty idą dolem, górą nie ma znaczenia. De facto na moich schematach nie
ma w ogole drutów - każdy pin ma nazwę neta i koniec.

W przypadku dużych elementów (procesory, pamięci itp.) zgoda. Ale przy
układach tranzystorowych i innej drobnicy opis tekstowy będzie
upierdliwy i pewnie będzie wymagał wcześniejszego narysowania na kartce
i dopiero ręcznego wygenerowania twojej netlisty.

Piotr Gałka
Guest

Sat Nov 10, 2012 12:23 pm   



Użytkownik "Sebastian Biały" <heby@poczta.onet.pl> napisał w wiadomości
news:k7jlg7$m0u$1@node2.news.atman.pl...
Quote:

Przy czym czasem latwiej zauwazyc brak linii na schemacie, niz jakas
pomylke w jednej z dziesiatek tysiecy linii kodu ..

To jest dyskusyjne. Tym bardziej że jesteś w stanie mając takie pliki
przygotować sobie własne testy typu "czy wszystkie układy logiczne mają
zasilanie" albo "czy gdzieś przypadkiem nie podpięto dwóch wyjśc razem"
albo "ten tranzystor ma wiszącą bazę".


Używam bardzo starego Protela 3. Nigdy nie uruchamiałem error-check dla
schematu - nie miałem takiej potrzeby. Teraz zajrzałem do tej funkcji.
Definiuje się w tabelce (jak tabliczka mnożenia 17 kolumn x 17 wierszy)
łączenie czego z czym (lub brak połączenia) jest OK, daje ostrzeżenie, daje
Error. Plus jeszcze trochę flag opcji.
Z tego wynika, że zapis tekstowy nie jest niezbędny do tego typu sprawdzeń.

Napisałeś gdzieś, że Twoje schematy w zasadzie to osobne elementy z
poopisywanymi nazwami netów.
Właśnie mam zrobić schemat zawierający Wiznet W5200.
Dostaję białej gorączki jak widzę ich kartę katalogową z której nie wynika
jak ten scalak połączyć (czy wyjścia LEDów są push-pull, czy OC, piszą "Be
sure to connect tantalum capacitor ...." a na wyrywkowym schemacie (bo w
karcie nie ma normalnego schematu aplikacji scalaka) jest zwykły, a gdzie
indziej piszą: "Connect a capacitor of 10.1uF to the ground." - dla mnie
rewelacja. No skąd mam wiedzieć, czy jak podłączę ceramika do wewnętrznego
stabilizatora 1V8 to ten stabilizator będzie stabilny, czy się wzbudzi
(skoro tekst sobie, a schemat sobie). No i w ogóle nie wiadomo do jakiego
napięcia podłączyć środki transformatorów bo przecież obwody wyjściowe i
wejściowe da się różnie zrobić i ja nie muszę być jasnowidzem.
Jedyne schematy (trzeba szukać poza karta katalogową) są właśnie typu każdy
element sobie - no nic z takiego schematu, a szczególnie w sensie EMC nie
widać - nie umiałbym chyba zaprojektować płytki według takiego schematu.

Kiedyś (1988), w czasach kiedy dysponowaliśmy tylko IBM-XT i drukarką
igłową, byłem zafascynowany programem Tech (chyba nazwy nie mylę) do edycji
tekstów. Idea taka, że to program wie jak tekst ma wyglądać, a piszący tylko
określa że to jest tytuł, to jest przypis itp., a kompilator zrobi z tego
ładny tekst bo on wie lepiej jakie są wymogi ergonomiczne tekstu, aby się
"dobrze czytał". Jednak przekonałem się do edytorów tekstu, w których od
razu widzę jak to wygląda.
Wydaje mi się, że Twoje podejście do schematu to jest tak jak ten Tech do
tekstu.
Schemat dla elektronika to jest jak rysunek techniczny dla mechanika.
Wyobrażasz sobie edycję w formie tekstu na przykład rysunku złożeniowego
takiego zwykłego mechanicznego budzika, bo ja nie.
Człowiek jest maszyną równoległą, a komputery są maszynami szeregowymi. Dla
człowieka zawsze edycja czegokolwiek będzie łatwiejsza gdy widzi wszystko na
raz.
Dopóki nie zaczniemy być zastępowani przez jakieś humanoidalne roboty
schemat będzie bardziej czytelny w formie graficznej niż tekstowej.
P.G.

Marek
Guest

Sat Nov 10, 2012 2:21 pm   



On 10.11.2012 12:23, Piotr Gałka wrote:
Quote:
Wydaje mi się, że Twoje podejście do schematu to jest tak jak ten Tech do
tekstu.

I tak się dziwnie składa że tworzenie w latex dokumentów przy
wykorzystaniu repozytorium przez wielu ludzi jest znacznie wygodniejsze
niż jakikolwiek sieciowy edytor tekstu.. Różnicę widać najlepiej jak
trzeba z tego tekstu zrobić "szablony" parametryzowane i autonomicznie
tworzyć dokumenty. Nie wyobrażam sobie zrobienia tego w edytorze wyswig.

Niestety całe środowisko narzędzi które wykorzystujemy najbardziej lubi
formaty tekstowe albo trzeba dopisywać "helpery" które pokażą/zwizualizują
zmiany.

Pewnie Sebastian byłby szczęśliwy gdyby dało się tak:
http://nvie.com/posts/a-successful-git-branching-model/
pracować z schematami. Mam propozycję: załóż zbiórkę na jakimś
crowdsourcingu, zobaczysz na ile ludzie tego potrzebują.

Marek

Goto page 1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Szukam języka tekstowego do opisu schematów elektronicznych z wersjonowaniem

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map