Faits: Faits: A. Par jugement du 19 février 2004, le Tribunal correctionnel de l'arrondissement de La Broye et du Nord vaudois a notamment condamné X._ pour viol, viol qualifié, délit manqué de propagation d'une maladie de l'homme, crime manqué de lésions corporelles graves, vol, infraction grave et contravention à la loi fédérale sur les stupéfiants à la peine de huit ans de réclusion, sous déduction de la détention préventive, et ordonné l'expulsion de X._ du territoire suisse pour une durée de quinze ans. Statuant le 19 mai 2004 sur recours de X._, la Cour de cassation pénale du Tribunal cantonal vaudois a confirmé le jugement de première instance. Statuant le 19 mai 2004 sur recours de X._, la Cour de cassation pénale du Tribunal cantonal vaudois a confirmé le jugement de première instance. B. En résumé, la condamnation de X._ repose sur les faits suivants: X._, ressortissant angolais, né en 1970, est arrivé en Suisse en janvier 2002. En février 2002, il a présenté les premières manifestations d'une infection au virus du SIDA. Son premier test positif remonte au 6 mai 2002. X._ est par ailleurs connu pour une consommation de drogues et d'alcool. Dans le cadre de la présente enquête, il a été soumis à une expertise psychiatrique, qui a conclu à une diminution légère de sa responsabilité pénale, due notamment à la consommation de drogues. Entre mars 2002 et son arrestation le 25 décembre 2002, X._ a acheté de la cocaïne auprès de divers dealers et s'est adonné au trafic de ce stupéfiant. Il a écoulé à titre gracieux ou onéreux 157 grammes de ce produit. Il en a également consommé. Ces faits sont constitutifs d'infraction grave et de contravention à la LStup. Au début du mois de décembre 2002, X._ a violé Y._, qui lui avait offert l'hospitalité pour la nuit. Il a récidivé à la mi-décembre, s'engouffrant dans l'ascenseur derrière sa victime et bloquant la cabine entre deux étages pour parvenir à ses fins. Y._ n'a pas été contaminée par le rétrovirus du SIDA. Pour ces faits, X._ a été condamné pour viol, crime manqué de propagation d'une maladie de l'homme et crime manqué de lésions corporelles graves. Dans la nuit du 25 décembre 2002, X._, qui avait passé la soirée chez les époux A.Z._ et B.Z._, a profité du départ du premier à la suite d'une dispute conjugale pour violer la seconde. Comme celle-ci se débattait, il a saisi une paire de ciseaux qu'il a menacé de lui "planter si elle n'arrêtait pas". Son forfait accompli, il a quitté les lieux, non sans faire main basse sur 290 à 300 francs au domicile de sa victime. B.Z._ n'a pas contracté le SIDA. Par ces faits, X._ s'est rendu coupable de viol qualifié, de propagation manquée d'une maladie de l'homme, de lésions corporelles graves manquées et de vol. Dans la nuit du 25 décembre 2002, X._, qui avait passé la soirée chez les époux A.Z._ et B.Z._, a profité du départ du premier à la suite d'une dispute conjugale pour violer la seconde. Comme celle-ci se débattait, il a saisi une paire de ciseaux qu'il a menacé de lui "planter si elle n'arrêtait pas". Son forfait accompli, il a quitté les lieux, non sans faire main basse sur 290 à 300 francs au domicile de sa victime. B.Z._ n'a pas contracté le SIDA. Par ces faits, X._ s'est rendu coupable de viol qualifié, de propagation manquée d'une maladie de l'homme, de lésions corporelles graves manquées et de vol. C. X._ forme contre l'arrêt cantonal un pourvoi en nullité au Tribunal fédéral. Invoquant une violation des art. 190 al. 3, 22 al. 1 et 63 CP, il conclut à l'annulation de la décision attaquée. En outre, il sollicite l'assistance judiciaire.