Hallo,
das Problem ist, dass es nicht mit dem Lernen von ASM bzw. Verilog getan
ist, denn damit kann man noch nicht viel anstellen. Man muss beim µC
noch die SFRs (Special Function Register) und deren Funktion kennen und
die sind oft umfangreicher, als ein paar Assemnblerbefehle. Natürlich
variiert das sehr stark von der einen Prozessorfamilie zur anderen.
Verilogbefehle zu kennen bringt auch dann oft nicht viel, wenn man nicht
weiß, wie man Blockram, PLL, ... ansteuert. Oft wird ein Designtool
meckern, wenn man scheinbar sehr logische und übersichtliche Designs
schreibt. Das liegt bspw. daran, dass einer Variable an zwei
verschiedenen Stellen im "Programm" gleichzeitig etwas zugewiesen werden
könnte, was aber in der vorgesehenen Anwendung sowieso nicht auftritt.
z. B. Taste 1 drücken setzt x auf 1 und Taste 2 setzt x auf 0, ist
nichts gedrückt soll es so bleiben, wie es war. Nun könnte es aber
passieren, dass beide Tasten gedrückt werden und für diesen Fall muss
der Compiler eine Lösung finden, auch wenn man das nicht vor hat und das
kann der Compiler nicht -> Error. Das passiert auch bei
Flankensteuerung. Auch wenn die Wahrscheinlichkeit gegen 0 geht, dass
beide Flanke gleichzeitig auftreten, kann es der Compiler nicht
übersetzen.
Also Verilog sieht zwar schön einfach aus, aber keines von beiden ist
einfacher zu lernen. In Verilog wird man zwar Dinge ganz einfach
realisieren können, die in ASM gar nicht denkbar wären: echte
Parallelität, Echtzeit, asynchrone Ereignisverarbeitung..., ABER manche
Sachen, wofür µCs gedacht sind, gehen halt in Verilog (FPGA) doof oder
ganz ineffizient oder mit effizienzsteigernden Tricks noch viel doofer
und unübersichtlicher.
Da du sowieso beides brauchst, fang doch mit PIC-Assembler an, das ist
am einfachsten.